Programowanie w Javie- wykład 12 Kolekcje (zbiory)
|
|
- Paweł Roman Skrzypczak
- 5 lat temu
- Przeglądów:
Transkrypt
1 1 Programowanie w Javie- wykład 12 Kolekcje (zbiory) Treści prezentowane w wykładzie zostały oparte o: Barteczko, JAVA Programowanie praktyczne od podstaw, PWN, 2014 Barteczko, JAVA Uniwersalne techniki programowania, PWN, C. S. Horstmann, G. Cornell, Java. Podstawy, Helion, Gliwice 2013
2 Podstawowe interfejsy JCF Collection - dowolna kolekcja nie będącą mapą List - zestaw elementów, z których każdy znajduje się na określonej pozycji; do listy można wielokrotnie dodać ten sam element i można sięgnąć po element na dowolnej pozycji. Queue - kolejka, czyli sekwencja elementów, do której dodawanie i sięganie po elementy odbywa się na pozycjach, określonych przez zadany porządek (najczęsciej FIFO - first in first out). Nie ma bezpośredniego dostępu do dowolnej pozycji. Deque - rozszerza Queue: kolejka podwójna, do której dodawanie i sięganie może odbywać się na obu końcach (np. dodaj na początku, dodaj na końcu, usuń z początku, usuń z końca). Set - zestaw niepowtarzających się elementów, pozycje elementów są nieokreślone. SortedSet - rozszerza Set: zbiór uporządkowany NavigableSet - rozszerza SortedSet: zbiór uporządkowany, dla którego możliwe są operacje uzyskiwania elementów "bliskich" danemu. Map mapa (tablica asocjacyjna, słownik) - zestaw par: klucz-wartość, przy czym odwzorowanie kluczy w wartości jest jednoznaczne SortedMap - mapa z uporządkowanymi kluczami (typu SortedSet) NavigableMap - mapa, w której klucze są typu NavigableSet 2
3 Wybrane podstawowe konkretne implementacje Implementowany interfejs Implementujące klasy Sposób realizacji właściwości określanych przez interfejs List ArrayList Dynamicznie rozszerzalna tablica (szybki bezpośredni dostęp po indeksach) List, Queue, Deque LinkedList Lista liniowa z podwójnymi dowiązaniami (szybkie wpisywanie i usuwanie elementów poza końcem listy; wolny dostęp bezpośredni; implementacja operacji na kolejkach) Queue, Deque ArrayDeque Kolejka podwójna (zrealizowana jako rozszerzalna tablica; szybki dostęp do obu końców, brak dostępu do dowolnej pozycji) Queue PriorityQueue Kolejka z priorytetami (kolejka, w której pierwszy i ostatni elment jest określany na podstawie ustalonego porządku (porównania elmentów wg kryteriów) ) Set HashSet Tablica haszująca (mieszania) (szybkie wpisywanie (add) i odnajdywanie elementów(contains); kolejność elementów nieokreślona) Set, SortedSet, NavigableSet TreeSet Drzewo czerwono-czarne, szybkie wstawianie, (uporządkowanie elementów; dostęp i wyszukiwanie wolniejsze niż w implementacji mieszającej) Set LinkedHashSet Tablica mieszania i lista liniowa (jak w implememntacji mieszającej, z zachowaniem porządku wpisywania elementów) 3
4 Zbiory (interfejs Set) 4 Zbiór jest kolekcją, reprezentującą zestaw niepowtarzających się elementów. W zbiorze elementy nie mają pozycji. Nie jest możliwy dostęp do elementów zbioru po indeksach. O elemencie zbioru można zatem powiedzieć jedynie, czy należy do zbioru (w jednym egzemplarzu), czy nie. Zatem zbiór posiada, odmienną niż lista, semantykę: nie zachowuje kolejności elementów, natomiast wyklucza istnienie duplikatów. Interfejs Set nie definiuje żadnych nowych metod w porównaniu do interfejsu Collection. Jedyne uszczegółowienie polega na tym, że w przypadku zbiorów, metody dodające elementy do zbiorów zwracają wartość false, jeśli dodawane elementy już w zbiorze występują. Podobnie, jak w przypadku listy, zbiór posiada w JDK kilka gotowych implementacji. Jedną z nich jest HashSet, w którym unikatowość elementów jest zapewniona przez zastosowanie tablicy haszującej (mieszającej); natomiast w przypadku klasy TreeSet poprzez wyszukiwanie binarne z użyciem drzewa czerwono-czarnego (drzewo dwukolorowe).
5 Zbiory - HashSet 5 Przykład. Zauważmy, że jeśli w pliku firm dwa razy powtórzono tę samą nazwę, to co zrobić, jeśli chcemy mieć wynikowy zestaw firm bez powtórzeń nazw? Oczywiście, można własnoręcznie oprogramować sprawdzanie elementów zestawu i usuwać z niego duplikaty. Ale po co, jeśli istnieje prostszy sposób - zastosowanie kolekcji typu zbiór. Możemy np. użyć konkretnej klasy realizującej koncepcję zbioru nieuporządkowanego - klasy HashSet. Zwróćmy uwagę, że: w zbiorze elementy nie mają pozycji. Przy przeglądaniu możemy zatem zastosować wyłącznie iterator (dostęp "po indeksach" nie jest możliwy). porządek iterowania (przeglądania) zbioru nie jest określony (kolejność wyprowadzonych wyników może być inna niż kolejność firm w pliku).
6 Zbiory - HashSet - przykład 6 class Intro2 { public static void main(string args[]) throws IOException { Scanner scan = new Scanner(new File("firms.txt")); // Utworzenie obiektu klasy HashSet // z parametrem typu <String> Set<String> set = new HashSet<>(); while (scan.hasnextline()) { String firm = scan.nextline(); // dodanie kolejnego elementu do zbioru set.add(firm); // wyprowadzenie zawartości zbioru for (String elt : set) System.out.println(elt);
7 Zbiory - TreeSet Przykład. Co zrobić, jeśli od naszego programu wymagane jest wyprowadzenie uporządkowanego zestawu firm np. w alfabetycznym porządku? Możemy zastosować kolekcję stanowiącą zbiór uporządkowany. W zbiorze uporządkowanym kolejność przeglądania jego elementów za pomocą iteratora jest określona (np. w rosnącym porządku alfabetycznym nazw firm, będących elementami zbioru). Konkretną realizacją zbioru uporządkowanego jest w Javie klasa TreeSet. import java.util.*; import java.io.*; class Intro3 { public static void main(string args[]) throws IOException { Scanner scan = new Scanner(new File("firms.txt")); TreeSet<String> set = new TreeSet<>(); while (scan.hasnextline()){ set.add(scan.nextline()); for (String elt : set) System.out.println(elt); 7
8 Zbiory - HashSet Tablica mieszająca (haszująca - ang. hashtable) jest strukturą danych specjalnie przystosowaną do szybkiego odnajdywania elementów. Dla każdego elementu danych wyliczany jest kod numeryczny (liczba całkowita) nazywany kodem mieszania (hashcode), na podstawie którego obliczany jest indeks w tablicy, pod którym będzie umieszczony dany element. Może się zdarzyć, że kilka elementów otrzyma ten sam indeks, zatem elementy tablicy mieszającej stanowią listy, na których znajdują się elementy danych o takim samym indeksie, wyliczonym na podstawie ich kodów mieszania. Każda lista - element tablicy mieszania nazywa się kubełkiem (bucket). Aby umieścić nowy element w tablicy mieszania, wyliczany jest jego hashcode, po czym na podstawie jego wartości obliczany jest indeks w tablicy mieszania. Indeks taki stanowi resztę z dzielenia wartości kodu mieszania przez liczbę kubełków. Element umieszczany jest w kubełku pod tym indeksem. Istotne jest w tej procedurze, by: wyliczanie kodu mieszania było szybkie, kody mieszania dla rożnych elementów zależały tylko od ich wartości i były (możliwie) różne dla różnych wartości elementów, wynikowe indeksy dawały możliwie równomierną dystrybucję elementów danych po elementach tablicy mieszania. 8
9 Zbiory - hashtable W Javie można wyliczyć kod mieszania dla każdego obiektu za pomocą zastosowania metody hashcode(). Metoda ta, zdefiniowana w klasie Object, daje - ogólnie - jako wynik adresy obiektów. To, oczywiście, nie jest zbyt użyteczne, bowiem nie bierze pod uwagę zawartości obiektów (wszystkie obiekty mają rożne kody mieszania). Ale w standardowych klasach Javy metoda hashcode() została przedefiniowana, tak, by zwracała kod na podstawie "treści" obiektu, np. napisu stanowiącego "zawartość" obiektu klasy String. Dwa takie same napisy będą miały te same kody mieszania. Wyszukanie elementu w tablicy mieszania jest bardzo efektywne. Wystarczy obliczyć indeks tablicy na podstawie kodu mieszania szukanego elementu i jeżeli w danym kubełku jest tylko jeden element, to - nawet nie wykonując żadnych porównań - zwrócić ten element (lub wartość true - że jest). Jeżeli w kubełku jest kilka elementów, to musimy wykonać ich porównanie z szukanym elementem (equals(...)), ale i tak liczba porównań będzie zwykle bardzo niewielka w stosunku do liniowego czy nawet binarnego wyszukiwania. Klasa HashSet wykonuje to np. przy wywołaniu metod add(obiekt), remove(obiekt). Oprócz wyliczania kodów mieszania do prawidłowego dodawania i odnajdywania elementów potrzebne jest odpowiednie zdefiniowanie metody equals(), porównującej "treść" dwóch obiektów. 9
10 Zbiory HashSet 10 Jeżeli prawdziwe jest a.equals(b), to musi być spełniony warunek a.hashcode() == b.hashcode(). Zarówno hashcode() jak i equals() są dobrze zdefiniowane w standardowych klasach Javy, natomiast tworząc własne klasy musimy sami zadbać o właściwe ich zdefiniowanie. Należy pamiętać, że przedefiniowujemy metodę equals z klasy Object. A tam jej parametrem jest Object. Użycie innego typu parametru prowadzi do przeciążenia (a nie przedefiniowania) metody i uniemożliwia polimorficzne do niej odwołania. Metodę hashcode definiujemy w klasie jako: public int hashcode() { //obliczenie kodu mieszania na podstawie wartości pól klasy //dla pól obiektowych użyjemy metody hashcode() z ich klas Środowiska uruchomieniowe IDE (m.in. IntelliJ, NetBeans) dają możliwość automatycznej generacji kodów metod hashcode() i equals() poprzez wybór opcji z menu. Porządek elementów kolekcji HashSet nie jest określony. Klasa LinkedHashSet, dziedzicząc klasę HashSet udostępnia wygodną często właściwość: zachowania porządku, w jakim elementy dodane były do zbioru.
11 Zbiory TreeSet Inna podstawowa implementacja koncepcji zbioru - klasa TreeSet, opiera się na strukturze danych zwanej drzewem czerwono-czarnym. Dla potrzeb korzystania z klasy TreeSet wystarczy wiedzieć, że zapewnia ona szczególne uporządkowanie elementów zbioru, które pozwala szybko odnajdywać w nim podany element. Klasa TreeSet realizuje nie tylko koncepcję zbioru "w ogóle", ale również zbioru uporządkowanego, implementując interfejs SortedSet (ściślej NavigableSet), który rozszerza interfejs Set. Widzieliśmy już jak iterowanie po TreeSet zwraca elementy w porządku rosnącym. Np. poniższy fragment: String[] s = {"ala", "pies", "kot"; Set<String> set = new TreeSet<>(); for (int i=0; i < s.length; i++) set.add(s[i]); System.out.println(set.toString()); wypisze: [ala, kot, pies] Do zbiorów należy dodawać tylko referencje do obiektów niemodyfikowalnych, w przeciwnym razie zbiór może stracić spójność po ewentualnej zmianie zawartości obiektu (może zawierać identyczne obiekty) 11
12 Kolekcje przykład proste sortowanie TreeSet zapewnia uporządkowanie elementów kolekcji, ale usuwa duplikaty. Co zrobić, jeśli chcemy duplikaty zachować i posortować kolekcję? Zachowanie duplikatów zapewnia lista (np. ArrayList). Możemy wobec niej zastosowac gotowy algorytm sortowania zapisany w postaci statycznej metody klasy Collections (klasa ta zawiera metody realizujące rózne algorytmy działania na kolekcjach). import java.util.*; import java.io.*; class Intro4 { public static void main(string args[]) throws IOException { Scanner scan = new Scanner(new File("firms.txt")); ArrayList<String> list = new ArrayList<>(); while (scan.hasnextline()){ list.add(scan.nextline()); Collections.sort(list); for (String firm : list) { System.out.println(firm); //wyprowadzi firmy w rosnącym alfabetycznym porządku ich nazw 12
13 Porównywanie obiektów 13 Dodawanie elementów do zbiorów uporządkowanych (np. TreeSet), iterowanie po kolekcjach uporządkowanych, pobieranie elementów z kolejek z priorytetami, a także sortowanie kolekcji i tablic algorytmami kolekcyjnymi odbywa się w oparciu o: naturalny porządek obiektów, lub reguły porównywania obiektów określane przez komparator - obiekt klasy implementującej interfejs Comparator. Naturalny porządek określany jest przez implementację interfejsu Comparable<T> w klasie obiektów i dostarczenie definicji metody compareto tego interfejsu, porównującej dwa obiekty typu T. Metoda compareto ma następującą sygnaturę: public int compareto(t otherobject) gdzie T jest typem obiektu, i zwraca: liczbę < 0, jeżeli ten obiekt (this) znajduje się (w porządku) przed obiektem otherobject, liczbę > 0, jeżeli ten obiekt (this) znajduje się (w porządku) po obiekcie otherobject, 0, jeśli obiekty są takie same.
14 Porównywanie obiektów Wiele standardowych klas Javy implementuje interfejs Comparable (np. klasa String, Date, klasy opakowujące typy proste). We własnych klasach musimy o to zadbać sami. Zatem, każda nasza klasa, której obiekty mogą być elementami kolekcji uporządkowanych powinna określać naturalny porządek swoich obiektów. Np. w klasie Worker moglibyśmy ustalić, że naturalną kolejnością obiektów jest alfabetyczna kolejność nazwisk w porządku rosnącym poprzez dostarczenie definicji metody compareto: class Worker implements Comparable<Worker> { private String lname; private String fname; private int salary; //... public int compareto(worker other) { int res = lname.compareto(other.lname); if(res==0) res = fname.compareto(other.fname) return res; public String tostring() { return fname + " " + lname + " " + salary; 14
15 Porównywanie obiektów Po wykorzystaniu powyższej klasy w poniższym fragmencie: Worker[] p = { new Worker("Jan", "Kowalski", 2000), new Worker("Jan", "Malinowski", 2200), new Worker("Jan", "Kowalski", 2400), new Worker("Jan", "Kowalewski", 3000), ; Set<Osoba> set = new TreeSet<>(); for (Worker w : p) set.add(w); System.out.println(set); otrzymamy (naturalnie) uporządkowany wynik: [Jan Kowalewski 3000, Jan Kowalski 2000, Jan Malinowski 2200] 15
16 Porównywanie obiektów - komparator 16 Aby uzyskać zbiory uporządkowane według różnych kryteriów, np. według nazwisk lub według pensji, albo porządek odwrotny (np. w malejącym alfabetycznym porządku nazwisk) należy skorzystać z komparatora. Komparator jest obiektem porównującym inne obiekty. Komparatory w Javie są realizowane jako obiekty klas implementujących interfejs Comparator<T>, gdzie T jest typem porównywanych obiektów Interfejs ten zawiera metodę: int compare(t o1, T o2) której implementacja winna porównywać dwa swoje argumenty i zwracać: wynik 0 jeśli oba obiekty są równe, liczbę mniejszą od 0, jeśli o1 jest "mniejszy" od o2 liczbę większą od 0, jeśli o1 jest "większy" od o2. Obiekt komparator może być podany jako argument konstruktora klasy TreeSet (wtedy to on, a nie naturalny porządek, decyduje o sposobie wpisywania elementów do zbioru), może rownież występować jako argument metod sortowania z klasy Collections i Arrays, konstruktorów klasy PriorityQueue oraz konstruktorów innych kolekcji uporządkowanych (np. TreeMap). Specjalny komparator, odwracający naturalny porządek, uzyskiwany jest za pomocą statycznej metody klasy Collections - Collections.reverseOrder().
17 Porównywanie obiektów - przykład 17 import java.util.*; class Worker implements Comparable<Worker> { private String lname; private String fname; private int salary; public Worker(String fn, String ln, int sal) { lname = ln; fname = fn; salary = sal; public int getsalary() { return salary; public int compareto(worker other) { int res = lname.compareto(other.lname); if(res==0) res = fname.compareto(other.fname); return res; public String tostring() { return fname + " " + lname + " " + salary;
18 Porównywanie obiektów - przykład 18 public class TestKomparator { public static void main(string args[]) { Worker[] workers = { new Worker("Jan", "Kowalski", 2000), new Worker("Jan", "Malinowski", 2200), new Worker("Jan", "Kowalski", 2400), new Worker("Jan", "Kowalewski", 3000), new Worker("Stefan", "Zwierz", 3000), ; // Zbiór uporządkowany wg porządku naturalnego //(rosnąca kolejność nazwisk) Set<Worker> set = new TreeSet<>(); for (Worker w : workers) set.add(w); System.out.println(set); //[Jan Kowalewski 3000, Jan Kowalski 2000, // Jan Malinowski 2200, Stefan Zwierz 3000]
19 Porównywanie obiektów - przykład 19 // Zbiór uporządkowany wg rosnących pensji Set<Worker> set2 = new TreeSet<>( new Comparator<Worker>() { public int compare(worker o1, Worker o2) { // różnica pensji wystarczy do porownania: return o1.getsalary() - o2.getsalary(); ); for (Worker w : workers) set2.add(w); System.out.println(set2); //[Jan Kowalski 2000, Jan Malinowski 2200, // Jan Kowalski 2400, Jan Kowalewski 3000] // Zbiór uporządkowany w malejącym porządku naturalnym //(malejące nazwiska) Set<Worker> set3 = new TreeSet<>(Collections.reverseOrder()); for (Worker w : workers) set3.add(w); System.out.println(set3); //[Stefan Zwierz 3000, Jan Malinowski 2200, //Jan Kowalski 2000, Jan Kowalewski 3000]
20 Porównywanie obiektów 20 W powyższym przykładzie w klasie Worker nie definiowaliśmy metody equals() ani hashcode(), gdyż TreeSet ich nie potrzebuje. Zwróćmy uwagę, że komparator przesądza nie tylko o kolejności iterowania po zbiorze, ale również o tym, czy obiekty uznawane są za różne i czy wobec tego mogą stanowić elementy zbioru (przykład z powtórzeniem nazwiska Jan Kowalski i utrata Stefana Zwierza, gdy komparator porównywał pensje), Należy pamiętać, że: Operacje na zbiorze HashSet używają (i wymagają) metod hashcode() i equals(), a dodawanie i wyszukiwanie elementów odbywa się w oparciu o wyniki metody equals(). Operacje na zbiorze TreeSet odbywają się w oparciu o wyniki metody compareto() lub metody compare() komparatora. Oczywiście, nasze klasy powinny być przygotowane do tego, że ich obiekty mogą znaleźć się w zbiorach typu HashSet albo TreeSet, zatem powinny definiować wszystkie wspomniane metody. A do tego w sposob spójny: jeśli equals zwraca true, to compareto winno zwracać zero, a hashcode te same wartości dla obu porównywanych obiektów.
21 Porównywanie obiektów Warto zauważyć, że dla zbiorów uporządkowanych (naturalnie lub za pomocą komparatora) dostępna jest możliwość uzyskiwania "pierwszego" lub "ostatniego" (w zdefiniowanym porządku) elementu, a także podzbiorów, które zawierają elementy "od" - "do" (w zdefiniowanym porządku). Służą temu metody interfejsu SortedSet (pośrednio implementowanego przez TreeSet) m.in. headset(), tailset() i subset(), Interfejs NavigableSet bezpośrednio implementowany przez TreeSet dostarcza dodatkowych metod m.in. higher(e e), lower(e e), ceiling(e e), floor(e e), które pozwalają uzyskiwać elmenty "bliskie" względem danego porządku. Uwaga. Implementacja metody compareto w klasie String nie uwzględnia właściwego porządku napisów w różnych językach. Aby właściwie sortować napisy należy użyć kolatora (pobieramy go statyczną metodą Collator.getInstance()), który implementuje interfejs Comparator i jest specjalnym komparatorem uwzględniającym lokalizację (regionalne ustawienia językowe). List<String> polskie = Arrays.asList("z", "ę", "ź", "a", "ą"); Collections.sort(polskie, Collator.getInstance(new Locale("pl"))); // od Javy 8 mamy metodę sort również w interfejsie List : //list.sort(new Comparator<T>() {..) 21
22 Przetwarzanie list i zbiorów - przykłady Zmiana wartości elementów listy. Do każdego elementu listy firm (zmienna list), dodać przyrostek "-Polska". List<String> list = new ArrayList<>( Arrays.asList(new String[]{"Opel", "Fiat", "Audi")); for (int i=0; i<list.size(); i++) list.set(i, list.get(i) + " - Polska"); System.out.println(list); lub za pomocą iteratora listowego for (ListIterator<String> it = list.listiterator(); it.hasnext(); ) it.set(it.next() + " - Polska"); System.out.println(list); Usunięcie podanego obiektu z kolekcji. Usuniemy Opel z listy firm list. System.out.println("Przed: " + list); list.remove("opel"); System.out.println("Po: " + list); remove(ref) usuwa tylko pierwszy element, który został znaleziony ten sposób działa dla dowolnych modyfikowalnych kolekcji Można też usuwać element o podanym indeksie np. list.remove(3); W przypadku błędnego indeksu - IndexOutOfBoundsException 22
23 Przetwarzanie list i zbiorów - przykłady 23 Usuwanie za pomocą metody remove() iteratora System.out.println("Przed: " + list); for (Iterator<String> it = list.iterator(); it.hasnext();){ if(it.next().equals("opel")) it.remove(); System.out.println("Po: " + list); Ten sposób działa dla dowolnych modyfikowalnych kolekcji Operacje grupowe (bulk-operations) Metody addall(), removeall(), retainall(), to operacje grupowe (jednocześnie są wykonywane działania, które musielibyśmy programować za pomocą iteracji i metod contains(), remove(), add()). Zmienna list1 zawiera listę firm wczytanych z pliku, a list2 listę firm z innego pliku. Należy zmienić listę list1 tak, by zawierała dodatkowo, wszystkie te firmy z drugiego pliku, których nie było w pierwszym pliku. Przykładowe rozwiązanie:
24 Przetwarzanie list i zbiorów - przykłady 24 System.out.println("Na poczatku list1 : " + list1); System.out.println("Na poczatku list2 : " + list2); System.out.println("Usuwamy z list2, te które są na list1"); list2.removeall(list1); System.out.println("Teraz list2 : " + list2); System.out.println("Dodamy list2 do list1" ); list1.addall(list2); System.out.println("Na koncu list1 : " + list1); Gdyby chodziło tylko o podanie nazw firm bez powtórzeń: System.out.println("Dane z dwóch plików: "); System.out.println("list1 : " + list1); System.out.println("list2 : " + list2); HashSet<String> set = new HashSet<>(list1); set.addall(list2); System.out.println("Wynikowy zbiór : " + set);
25 Przetwarzanie list i zbiorów - przykłady W klasie Collections dostępne są metody statyczne, ułatwiające wykonywanie różnych operacji na kolekcjach. Oprócz wspomnianych wcześniej metod dostępne są dodatkowo metody odwracania list Collections.reverse(lista), wypełniania kolekcji i wiele innych. W trakcie przeglądania kolekcji za pomocą iteratora nie wolno jej modyfikować innymi środkami niż metody stosowanego właśnie do iterowania. Zatem // coll dowolna kolekcja napisów Iterator<String> it1=coll.iterator(); Iterator<String> it2=coll.iterator(); while(it1.hasnext()){ it1.next(); it2.next(); it2.remove(); // BŁĄD FAZY WYKONANIA wyjątek // ConcurrentModificationException Dotyczy to również pętli for-each dla kolekcji (stosowany jest w niej "pod spodem" iterator) for (String e : coll) coll.add(e+"1");//spowoduje ConcurrentModificationException 25
Programowanie w środowisku graficznym- wykład 7 Kolekcje (listy, zbiory)
1 Programowanie w środowisku graficznym- wykład 7 Kolekcje (listy, zbiory) Treści prezentowane w wykładzie zostały oparte o: Barteczko, JAVA Programowanie praktyczne od podstaw, PWN, 2014 Barteczko, JAVA
Bardziej szczegółowoAplikacje w Javie wykład 7 Kolekcje (listy, zbiory)
Aplikacje w Javie wykład 7 1 Kolekcje (listy, zbiory) Treści prezentowane w wykładzie zostały oparte o: Barteczko, JAVA Programowanie praktyczne od podstaw, PWN, 2014 http://docs.oracle.com/javase/8/docs/
Bardziej szczegółowoProgramowanie w Javie- wykład 11 Kolekcje (listy)
1 Programowanie w Javie- wykład 11 Kolekcje (listy) Treści prezentowane w wykładzie zostały oparte o: Barteczko, JAVA Programowanie praktyczne od podstaw, PWN, 2014 Barteczko, JAVA Uniwersalne techniki
Bardziej szczegółowojava.util.* :Kolekcje Tomasz Borzyszkowski
java.util.* :Kolekcje Tomasz Borzyszkowski Wstęp Kolekcje w Java dają programiście pewien standardowy sposób radzenia sobie z przetwarzaniem grup obiektów. Implementacja kolekcji w Java składa się z następujących
Bardziej szczegółowoProgramowanie w języku Java. Kolekcje
Programowanie w języku Java Kolekcje Definicja Kolekcja to obiekt, który grupuje elementy danych (inne obiekty) i pozwala traktować je jak jeden zestaw danych, umożliwiając jednocześnie wykonywanie na
Bardziej szczegółowoKolekcje mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011
Kolekcje mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011 Kolekcja obiekt, który grupuje inne obiekty, traktując je jako jeden zestaw danych i pozwalający na wykonywanie operacji
Bardziej szczegółowoProgramowanie Obiektowe (Java)
1. Wprowadzenie do kontenerów Wykład ósmy Kontenery s ą obiektami, które potrafi ą przechowywa ć inne obiekty w określony sposób. O kontenerach można myśle ć jako o gotowych do użycia strukturach danych.
Bardziej szczegółowoKurs programowania. Wykład 9. Wojciech Macyna. 28 kwiecień 2016
Wykład 9 28 kwiecień 2016 Java Collections Framework (w C++ Standard Template Library) Kolekcja (kontener) Obiekt grupujacy/przechowuj acy jakieś elementy (obiekty lub wartości). Przykładami kolekcji sa
Bardziej szczegółowoJava Collections Framework
Java Collections Framework Co to jest Java Collections Framework JCF Zunifikowana architektura do reprezentacji i manipulacji kolekcjami danych. Składa się z: Interfejsów Definuje abstrakcyjne typy możliwych
Bardziej szczegółowoKolekcje - pakiet Java Collections Framework
Programowanie obiektowe Kolekcje - pakiet Java Collections Framework Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski pwr.wroc.pl Definicja kolekcji
Bardziej szczegółowoKolekcje. Na podstawie:
Kolekcje Na podstawie: http://wazniak.mimuw.edu.pl Kolekcje w Javie Kolekcja (kontener) to po prostu obiekt, który grupuje wiele elementów w jeden twór. Pozwala na zapis, odczyt, korzystanie z danych oraz
Bardziej szczegółowoimport java.util.*; public class ListExample { public static void main(string args[]) { List<String> lista1= new ArrayList<String> ();
collection Zadanie.1 Napisać program, który: a) tworzy listę (implementacja tablicy ArrayList), dodając po jednym elemencie (korzystając z operacji podstawowej add). Następnie wypisuje całą listę, drugi
Bardziej szczegółowoAplikacje w Javie wykład 8 Kolekcje c.d. (komparatory, kolejki, mapy)
Aplikacje w Javie wykład 8 1 Kolekcje c.d. (komparatory, kolejki, mapy) Treści prezentowane w wykładzie zostały oparte o: Barteczko, JAVA Programowanie praktyczne od podstaw, PWN, 2014 http://docs.oracle.com/javase/8/docs/
Bardziej szczegółowoRealizacja ekstensji klasy. Paulina Strzelecka, Tomasz Roszkowski
Realizacja ekstensji klasy Paulina Strzelecka, Tomasz Roszkowski Przechowywanie obiektów (odwolañ do obiektów) w Javie typ wbudowany - tablica zbiór klas kontenerowych Paulina Strzelecka, Tomasz Roszkowski
Bardziej szczegółowoProgramowanie obiektowe
Programowanie obiektowe Wykład 8: Tablice i kolekcje obiektów. 4/27/2013 S.Deniziak: Programowanie obiektowe - Java 1 Tablice class A { A [ ] a; A [ ] b=new A[5]; a b A [ ] c = {new A(), new A(), new A(),
Bardziej szczegółowoPodstawy otwartych języków programowania Przechowywanie danych
Podstawy otwartych języków programowania Przechowywanie danych Wiktor Wandachowicz Sposoby przechowywania danych Typy podstawowe Pojedyncze obiekty Tablice obiektów i tablice typów podstawowych jednowymiarowe
Bardziej szczegółowoKolekcja (kontener) to po prostu obiekt, który grupuje wiele elementów w jeden twór.
Kolekcje Kolekcje w Javie Kolekcja (kontener) to po prostu obiekt, który grupuje wiele elementów w jeden twór. Pozwala na zapis, odczyt, korzystanie z danych oraz ich wzajemną komunikację. Przykład: ręka
Bardziej szczegółowoKurs programowania. Wykład 9. Wojciech Macyna
Wykład 9 Java Collections Framework (w C++ Standard Template Library) Kolekcja (kontener) Obiekt grupujacy/przechowuj acy jakieś elementy (obiekty lub wartości). Przykładami kolekcji sa zbiór, lista czy
Bardziej szczegółowoProgramowanie w Javie - wykład 13 Kolekcje c.d. ( mapy)
1 Programowanie w Javie - wykład 13 Kolekcje c.d. ( mapy) Treści prezentowane w wykładzie zostały oparte o: Barteczko, JAVA Programowanie praktyczne od podstaw, PWN, 2014 http://docs.oracle.com/javase/8/docs/
Bardziej szczegółowoTworzenie aplikacji w języku Java
Tworzenie aplikacji w języku Java Wykład 2 Java Collections Framework Piotr Czapiewski Wydział Informatyki ZUT 2 października 2009 Piotr Czapiewski (Wydział Informatyki ZUT) Tworzenie aplikacji w języku
Bardziej szczegółowoKolekcje - pakiet Java Collections Framework
Programowanie obiektowe Kolekcje - pakiet Java Collections Framework Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski pwr.wroc.pl Programowanie obiektowe
Bardziej szczegółowoJęzyki i metody programowania Java INF302W Wykład 3 (część 2)
Języki i metody programowania Java INF302W Wykład 3 (część 2) Autor Dr inż. Zofia Kruczkiewicz Autor, Zofia Kruczkiewicz Języki i metody programowania Java, wykład 3, część 2 1 STRUKTURA WYKŁADU 1. Systemowe
Bardziej szczegółowoAplikacje w Javie wykład 8 Kolekcje c.d. (komparatory, kolejki, mapy)
Aplikacje w Javie wykład 8 1 Kolekcje c.d. (komparatory, kolejki, mapy) Treści prezentowane w wykładzie zostały oparte o: Barteczko, JAVA Programowanie praktyczne od podstaw, PWN, 2014 http://docs.oracle.com/javase/8/docs/
Bardziej szczegółowoLista, Stos, Kolejka, Tablica Asocjacyjna
Lista, Stos, Kolejka, Tablica Asocjacyjna Listy Lista zbiór elementów tego samego typu może dynamicznie zmieniać rozmiar, pozwala na dostęp do poszczególnych elementów Typowo dwie implementacje: tablicowa,
Bardziej szczegółowoJęzyk JAVA podstawy. Wykład 4, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna
Język JAVA podstawy Wykład 4, część 3 1 Język JAVA podstawy Plan wykładu: 1. Podstawy modelowania obiektowego 2. Konstruktory 3. Dziedziczenie, związki pomiędzy klasami, UML 4. Polimorfizm 5. Klasy abstrakcyjne
Bardziej szczegółowoWykład 4. Klasa List Kolejki Stosy Słowniki
Wykład 4 Klasa List Kolejki Stosy Słowniki Klasa List Poważną niedogodnością tablic jako kolekcji danych jest fakt, że muszą one mieć stały rozmiar. Programista musi wiedzieć z góry ile miejsca powinien
Bardziej szczegółowoWydział Fizyki i Informatyki Stosowanej, Uniwersytetu Łódzkiego Łódź. Java podstawy języka, wykład 4 1
Wydział Fizyki i Informatyki Stosowanej, Uniwersytetu Łódzkiego 03.12.2010 Łódź Java podstawy języka, wykład 4 1 Stosując blokady (synchronizację) Można doprowadzić do zablokowania wszystkich wątków Zakleszczenie
Bardziej szczegółowoAPI STREAM WYRAŻENIA LAMBDA
Wykorzystano fragmenty wykładów M. Piotrowskiego i M. Wójcika KOLEKCJE API STREAM WYRAŻENIA LAMBDA Waldemar Korłub Platformy Technologiczne KASK ETI Politechnika Gdańska 2 Kolekcje Kolekcje 3 Kolekcja
Bardziej szczegółowoAplikacje w Javie- wykład 11 Wątki-podstawy
1 Aplikacje w Javie- wykład 11 Wątki-podstawy Treści prezentowane w wykładzie zostały oparte o: Barteczko, JAVA Programowanie praktyczne od podstaw, PWN, 2014 http://docs.oracle.com/javase/8/docs/ http://docs.oracle.com/javase/9/docs/
Bardziej szczegółowoComparable<Klasa_uzytkownika>
Przechowywanie obiektów w pamięci programu Część II (obiekty typów definiowanych przez użytkownika) Obiekty typów definiowanych przez użytkownika muszą być przystosowane do przechowywania w pojemnikach
Bardziej szczegółowodr inż. Piotr Czapiewski Tworzenie aplikacji w języku Java Laboratorium 1
Ćwiczenie 1 Uruchamianie programu w Netbeans Uruchom środowisko Netbeans. Stwórz nowy projekt typu Java Application. Nadaj projektowi nazwę HelloWorld (Project Name), zwróć uwagę na folder, w którym zostanie
Bardziej szczegółowoAlgorytmy i Struktury Danych. Anna Paszyńska
Algorytmy i Struktury Danych Anna Paszyńska Tablica dynamiczna szablon Array Zbiory Zbiory template class Container {public: virtual ~Container() { }; virtual int Count() const = 0;
Bardziej szczegółowoDawid Gierszewski Adam Hanasko
Dawid Gierszewski Adam Hanasko Chcemy stworzyć klasę w której możemy przechowywać dwie zmienne dowolnych typów Tworzymy tyle różnych klas ile potrzeba: Class ParaInt{ int pierwszy; Int drugi; Class ParaButow{
Bardziej szczegółowoProgramowanie obiektowe
Programowanie obiektowe Wykład 5 Marcin Młotkowski 23 marca 2017 Plan wykładu 1 2 3 4 5 Marcin Młotkowski Programowanie obiektowe 2 / 50 Historia Początkowe założenia Projekt OAK Sterowanie urządzeniami
Bardziej szczegółowoDokumentacja do API Javy.
Dokumentacja do API Javy http://java.sun.com/j2se/1.5.0/docs/api/ Klasy i obiekty Klasa jest to struktura zawierająca dane (pola), oraz funkcje operujące na tych danych (metody). Klasa jest rodzajem szablonu
Bardziej szczegółowoLaboratorium z przedmiotu: Inżynieria Oprogramowania INEK Instrukcja 7
Instrukcja 7 Laboratoria 9, 10 Opracowanie diagramów sekwencji dla wybranych przypadków użycia reprezentujących usługi oprogramowania wynikających również z wykonanych diagramów czynności; definicja operacji
Bardziej szczegółowoKolekcje w Javie cz. 1
Kolekcje w Javie cz. 1 Programowanie obiektowe Jacek Sroka na podstawie materiałów Janusza Jabłonowskiego 8 kwietnia 2013 Po co są kolekcje? Po co są kolekcje? A po co są programy? Żeby manipulować danymi.
Bardziej szczegółowoKiedy potrzebne. Struktura (rekord) Struktura w języku C# Tablice struktur. struktura, kolekcja
1 struktura, kolekcja Kiedy potrzebne Duża liczba danych takiego samego typu tablice a jak nieznana liczba elementów? dane zawierające wartości różnego typu (osoba: pesel, nazwisko, rok urodzenia, pracuje/niepracuje,
Bardziej szczegółowoKurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016
Wykład 2 17 marca 2016 Dziedziczenie Klasy bazowe i potomne Dziedziczenie jest łatwym sposobem rozwijania oprogramowania. Majac klasę bazowa możemy ja uszczegółowić (dodać nowe pola i metody) nie przepisujac
Bardziej szczegółowoKolekcje. object that groups multiple elements into a single unit
Kolekcje object that groups multiple elements into a single unit W wielu programach deklaracje typu: MyObject myreference; są uprawnione, jednak często zwłaszcza przy bardziej skomplikowanych programach
Bardziej szczegółowoJęzyki i techniki programowania Ćwiczenia 4 Wzorce
Języki i techniki programowania Ćwiczenia 4 Wzorce Wzorce to metoda generacji różnych klas lub różnych funkcji. Autor: Marcin Orchel Przykład 1: Jeśli dana klasa C wykonuje obliczenia numeryczne, i wymaganiem
Bardziej szczegółowoMetody Metody, parametry, zwracanie wartości
Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Metody Metody, parametry, zwracanie wartości Metody - co to jest i po co? Metoda to wydzielona część klasy, mająca
Bardziej szczegółowoKOLEKCJE JAVY API: NAJPROSTSZE PODSTAWY
KOLEKCJE JAVY API: NAJPROSTSZE PODSTAWY I. TABLICE, CZYLI PODSTAWOWY RODZAJ KOLEKCJI: ARRAYS Wady i zalety 1. (Na rozgrzewkę) Zdefiniuj dwie klasy w programie (mogą być nawet puste na nasze potrzeby).
Bardziej szczegółowoInterfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej
Programowanie obiektowe Interfejsy Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski pwr.wroc.pl Interfejsy Autor: Paweł Rogaliński Instytut Informatyki,
Bardziej szczegółowoProgramowanie i projektowanie obiektowe
Programowanie i projektowanie obiektowe Kolekcje Paweł Daniluk Wydział Fizyki Jesień 2011 P. Daniluk (Wydział Fizyki) PO w. X Jesień 2011 1 / 24 Kolekcje Interfejsy Implementacje Algorytmy Marketspeak
Bardziej szczegółowoJęzyki i techniki programowania Ćwiczenia 2
Języki i techniki programowania Ćwiczenia 2 Autor: Marcin Orchel Spis treści: Język C++... 5 Przekazywanie parametrów do funkcji... 5 Przekazywanie parametrów w Javie.... 5 Przekazywanie parametrów w c++...
Bardziej szczegółowoWybrane algorytmy tablicowe
Wybrane algorytmy tablicowe Algorytmy i struktury danych Wykład 2. Rok akademicki: 2009/2010 Sortowanie przez wybieranie for (int i = 0; i < liczby.length - 1; i++) k = i; for (int j = i; j < liczby.length;
Bardziej szczegółowoInstrukcja 2 Laboratorium z Podstaw Inżynierii Oprogramowania
Instrukcja 2 Laboratorium z Podstaw Inżynierii Oprogramowania Opis biznesowy świata rzeczywistego Wymagania funkcjonalne i niefunkcjonalne aplikacji Diagram przypadków życia Diagramy klas i sekwencji:
Bardziej szczegółowoPolimorfizm, metody wirtualne i klasy abstrakcyjne
Programowanie obiektowe Polimorfizm, metody wirtualne i klasy abstrakcyjne Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski pwr.wroc.pl Polimorfizm,
Bardziej szczegółowoPodstawy obiektowości
Podstawy obiektowości Zad. Zamówienie 1. Napisać program do obsługi zamówień. Program powinien składać się z dwóch klas: Zamowienie oraz Pozycja, przy czym każde zamówienie zawierać może jedną lub więcej
Bardziej szczegółowoLaboratorium 03: Podstawowe konstrukcje w języku Java [2h]
1. Typy. Java jest językiem programowania z silnym systemem kontroli typów. To oznacza, że każda zmienna, atrybut czy parametr ma zadeklarowany typ. Kompilator wylicza typy wszystkich wyrażeń w programie
Bardziej szczegółowoJava SE Laboratorium nr 7. Temat: Kolekcje
Java SE Laboratorium nr 7 Temat: Kolekcje 1 1. Definicja i idea Często w programach zachodzi potrzeba przechowywania w pamięci nieznanej z góry liczby elementów. Możliwość taką dostarczają tzw. kontenery
Bardziej szczegółowoTypy sparametryzowane
Typy sparametryzowane Streszczenie Celem wykładu jest zaprezentowanie typów sparametryzowanych. Czas wykładu 90 minut. Istnieją algorytmy, których zasada działania nie zależy od typu danych wejściowych.
Bardziej szczegółowoApilkacje w środowisku Java - wykład 8 Kolekcje c.d. ( mapy) Podstawy programowania funkcyjnego
1 Apilkacje w środowisku Java - wykład 8 Kolekcje c.d. ( mapy) Podstawy programowania funkcyjnego Treści prezentowane w wykładzie zostały oparte o: Barteczko, JAVA Programowanie praktyczne od podstaw,
Bardziej szczegółowoProgramowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz
Programowanie obiektowe Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Java P. L. Lemay, Naughton R. Cadenhead Java Podręcznik 2 dla kaŝdego Języka Programowania Java Linki Krzysztof Boone oprogramowania
Bardziej szczegółowoJAVA W SUPER EXPRESOWEJ PIGUŁCE
JAVA W SUPER EXPRESOWEJ PIGUŁCE Obiekt Obiekty programowe to zbiór własności i zachowań (zmiennych i metod). Podobnie jak w świecie rzeczywistym obiekty posiadają swój stan i zachowanie. Komunikat Wszystkie
Bardziej szczegółowoJava niezbędnik programisty spotkanie nr 8. Kolekcje c.d.
Java niezbędnik programisty spotkanie nr 8 Kolekcje c.d. 1 Kontenery (rysunek pożyczony z Thinkin in Java ed. 3) Legenda: kreski-interfejsy kropki-kl. Abstr. 2 Przykład static Collection fill(collection
Bardziej szczegółowoJęzyk JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna
Język JAVA podstawy Wykład 3, część 3 1 Język JAVA podstawy Plan wykładu: 1. Konstrukcja kodu programów w Javie 2. Identyfikatory, zmienne 3. Typy danych 4. Operatory, instrukcje sterujące instrukcja warunkowe,
Bardziej szczegółowoPlatformy Programistyczne Podstawy języka Java
Platformy Programistyczne Podstawy języka Java Agata Migalska 6 maja 2014 Plan wykładu 1 Sztuka wysławiania się w języku Java 2 Cały świat jest obiektem 3 Kolekcje 4 Zmienne i metody statyczne 5 Słowo
Bardziej szczegółowoWspółbieżność i równoległość w środowiskach obiektowych. Krzysztof Banaś Obliczenia równoległe 1
Współbieżność i równoległość w środowiskach obiektowych Krzysztof Banaś Obliczenia równoległe 1 Java Model współbieżności Javy opiera się na realizacji szeregu omawianych dotychczas elementów: zarządzanie
Bardziej szczegółowoAplikacje w środowisku Java
Aplikacje w środowisku Java Materiały do zajęć laboratoryjnych Klasy i obiekty - dziedziczenie mgr inż. Kamil Zieliński Katolicki Uniwersytet Lubelski Jana Pawła II 2018/2019 W ramach poprzedniego laboratorium
Bardziej szczegółowoAlgorytmy sortujące i wyszukujące
Algorytmy sortujące i wyszukujące Zadaniem algorytmów sortujących jest ułożenie elementów danego zbioru w ściśle określonej kolejności. Najczęściej wykorzystywany jest porządek numeryczny lub leksykograficzny.
Bardziej szczegółowoKonstruktory. Streszczenie Celem wykładu jest zaprezentowanie konstruktorów w Javie, syntaktyki oraz zalet ich stosowania. Czas wykładu 45 minut.
Konstruktory Streszczenie Celem wykładu jest zaprezentowanie konstruktorów w Javie, syntaktyki oraz zalet ich stosowania. Czas wykładu 45 minut. Rozpatrzmy przykład przedstawiający klasę Prostokat: class
Bardziej szczegółowo2. Tablice. Tablice jednowymiarowe - wektory. Algorytmy i Struktury Danych
2. Tablice Tablica to struktura danych przechowująca elementy jednego typu (jednorodna). Dostęp do poszczególnych elementów składowych jest możliwy za pomocą indeksów. Rozróżniamy następujące typy tablic:
Bardziej szczegółowo2. Klasy cz. 2 - Konstruktor kopiujący. Pola tworzone statycznie i dynamicznie - Funkcje zaprzyjaźnione - Składowe statyczne
Tematyka wykładów 1. Wprowadzenie. Klasy cz. 1 - Język C++. Programowanie obiektowe - Klasy i obiekty - Budowa i deklaracja klasy. Prawa dostępu - Pola i funkcje składowe - Konstruktor i destruktor - Tworzenie
Bardziej szczegółowoWyjątki. Streszczenie Celem wykładu jest omówienie tematyki wyjątków w Javie. Czas wykładu 45 minut.
Wyjątki Streszczenie Celem wykładu jest omówienie tematyki wyjątków w Javie. Czas wykładu 45 minut. Wydaje się, że żaden użytkownik oprogramowania nie lubi, kiedy stosowany program nagle zawiesza się,
Bardziej szczegółowoAplikacje Internetowe. Najprostsza aplikacja. Komponenty Javy. Podstawy języka Java
Aplikacje Internetowe Podstawy języka Java Najprostsza aplikacja class Hello { public static void main(string[] args) { System.out.println("Hello World!"); Komponenty Javy JRE Java Runtime Environment
Bardziej szczegółowoProjektowanie aplikacji internetowych laboratorium
Projektowanie aplikacji internetowych laboratorium Programowanie w języku Java Do realizacji projektu potrzebne jest zintegrowane środowisko programistyczne NetBeans 7 (zrzuty ekranów pochodzą z wersji
Bardziej szczegółowoJava: kilka brakujących szczegółów i uniwersalna nadklasa Object
Java: kilka brakujących szczegółów i uniwersalna nadklasa Object Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak PLAN WYKŁADU Konstrukcja obiektów Niszczenie obiektów i zwalnianie zasobów
Bardziej szczegółowoWykład 8: klasy cz. 4
Programowanie obiektowe Wykład 8: klasy cz. 4 Dynamiczne tworzenie obiektów klas Składniki statyczne klas Konstruktor i destruktory c.d. 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD
Bardziej szczegółowoInformatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018
Informatyka I Klasy i obiekty. Podstawy programowania obiektowego dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2018 Plan wykładu Pojęcie klasy Deklaracja klasy Pola i metody klasy
Bardziej szczegółowoListy, krotki, słowniki, funkcje
Listy, krotki, słowniki, funkcje Listy Lista jest najbardziej elastycznym typem obiektu uporządkowanej kolekcji. Może zawierać różne typy danych - liczby, łańcuchy znaków, a nawet inne listy. Tworzy się
Bardziej szczegółowoWykład 3 Składnia języka C# (cz. 2)
Wizualne systemy programowania Wykład 3 Składnia języka C# (cz. 2) 1 dr Artur Bartoszewski -Wizualne systemy programowania, sem. III- WYKŁAD Wizualne systemy programowania Metody 2 Metody W C# nie jest
Bardziej szczegółowoAplikacje w środowisku Java
Aplikacje w środowisku Java Materiały do zajęć laboratoryjnych Klasy i obiekty - wprowadzenie mgr inż. Kamil Zieliński Katolicki Uniwersytet Lubelski Jana Pawła II 2018/2019 Klasa zbiór pól i metod Obiekt
Bardziej szczegółowoMetody getter https://www.python-course.eu/python3_object_oriented_programming.php 0_class http://interactivepython.org/runestone/static/pythonds/index.html https://www.cs.auckland.ac.nz/compsci105s1c/lectures/
Bardziej szczegółowoProgramowanie obiektowe
Programowanie obiektowe Wykład 13: RTTI 6/2/2013 S.Deniziak: Programowanie obiektowe - Java 1 Po co informacja o typie obiektu? Polimorfizm Kolekcje Deserializacja 6/2/2013 S.Deniziak: Programowanie obiektowe
Bardziej szczegółowoJęzyk JAVA podstawy. Wykład 4, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna
Język JAVA podstawy Wykład 4, część 1 1 Język JAVA podstawy Plan wykładu: 1. Podstawy modelowania obiektowego 2. Konstruktory 3. Dziedziczenie, związki pomiędzy klasami, UML 4. Polimorfizm 5. Klasy abstrakcyjne
Bardziej szczegółowoLaboratorium z przedmiotu Programowanie obiektowe - zestaw 04
Laboratorium z przedmiotu Programowanie obiektowe - zestaw 04 Cel zajęć. Celem zajęć jest zapoznanie się ze sposobem działania popularnych kolekcji. Wprowadzenie teoretyczne. Rozważana w ramach niniejszych
Bardziej szczegółowoProgramowanie w Javie wykład 8 Interfejsy
1 Programowanie w Javie wykład 8 Interfejsy Treści prezentowane w wykładzie zostały oparte o: Barteczko, JAVA Programowanie praktyczne od podstaw, PWN, 2014 Barteczko, JAVA Uniwersalne techniki programowania,
Bardziej szczegółowoTechniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 3. Karol Tarnowski A-1 p.
Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni Wykład 3 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Abstrakcja funkcyjna Struktury Klasy hermetyzacja
Bardziej szczegółowoProgramowanie w Javie - wykład 14 Podstawy programowania funkcyjnego
1 Programowanie w Javie - wykład 14 Podstawy programowania funkcyjnego Treści prezentowane w wykładzie zostały oparte o: Barteczko, JAVA Programowanie praktyczne od podstaw, PWN, 2014 http://docs.oracle.com/javase/8/docs/
Bardziej szczegółowoProgramowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków
Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków mgr inż. Maciej Lasota Version 1.0, 13-05-2017 Spis treści Wyjątki....................................................................................
Bardziej szczegółowoPARADYGMATY PROGRAMOWANIA Wykład 3
PARADYGMATY PROGRAMOWANIA Wykład 3 Definiowanie operatorów i ich przeciążanie Przykłady zastosowania operatorów: a) operator podstawienia ( = ) obiektów o złożonej strukturze, b) operatory działania na
Bardziej szczegółowoProgramowanie obiektowe
Programowanie obiektowe IV. Interfejsy i klasy wewnętrzne Małgorzata Prolejko OBI JA16Z03 Plan Właściwości interfejsów. Interfejsy a klasy abstrakcyjne. Klonowanie obiektów. Klasy wewnętrzne. Dostęp do
Bardziej szczegółowoLaboratorium z przedmiotu: Inżynieria Oprogramowania INEK Instrukcja 6
Instrukcja 6 Laboratorium 8 Opracowanie diagramów sekwencji dla wybranych przypadków użycia reprezentujących usługi oprogramowania wynikających również z wykonanych diagramów czynności; definicja operacji
Bardziej szczegółowoTechnologie i usługi internetowe cz. 2
Technologie i usługi internetowe cz. 2 Katedra Analizy Nieliniowej, WMiI UŁ Łódź, 15 luty 2014 r. 1 Programowanie obiektowe Programowanie obiektowe (z ang. object-oriented programming), to paradygmat programowania,
Bardziej szczegółowoPARADYGMATY PROGRAMOWANIA Wykład 4
PARADYGMATY PROGRAMOWANIA Wykład 4 Metody wirtualne i polimorfizm Metoda wirualna - metoda używana w identyczny sposób w całej hierarchii klas. Wybór funkcji, którą należy wykonać po wywołaniu metody wirtualnej
Bardziej szczegółowoJava. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak
Java język programowania obiektowego Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak 1 Język Java Język Java powstał w roku 1995 w firmie SUN Microsystems Java jest językiem: wysokiego
Bardziej szczegółowoJava Zadanie 1. Aby poprawnie uruchomić aplikację desktopową, należy zaimplementować główną metodę zapewniającą punkt wejścia do programu.
Wstęp Java Zadanie Celem laboratorium jest zapoznanie się z podstawami platformy oraz języka Java. W ramach zadania należy przygotować aplikację zarządzania notatkami użytkownika obsługiwaną z konsoli.
Bardziej szczegółowoKlasy i obiekty cz II
Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Klasy i obiekty cz II Hermetyzacja, mutatory, akcesory, ArrayList Rozwijamy aplikację Chcemy, aby obiekty klasy
Bardziej szczegółowoObiektowe programowanie rozproszone Java RMI. Krzysztof Banaś Systemy rozproszone 1
Obiektowe programowanie rozproszone Java RMI Krzysztof Banaś Systemy rozproszone 1 Java RMI Mechanizm zdalnego wywołania metod Javy (RMI Remote Method Invocation) posiada kilka charakterystycznych cech,
Bardziej szczegółowoProgramowanie obiektowe i zdarzeniowe
Marek Tabędzki Programowanie obiektowe i zdarzeniowe 1/23 Programowanie obiektowe i zdarzeniowe wykład 6 polimorfizm Na poprzednim wykładzie: dziedziczenie jest sposobem na utworzenie nowej klasy na podstawie
Bardziej szczegółowoPHP: bloki kodu, tablice, obiekty i formularze
1 PHP: bloki kodu, tablice, obiekty i formularze SYSTEMY SIECIOWE Michał Simiński 2 Bloki kodu Blok if-else Switch Pętle Funkcje Blok if-else 3 W PHP blok if i blok if-else wyglądają tak samo i funkcjonują
Bardziej szczegółowoRozdział 4 KLASY, OBIEKTY, METODY
Rozdział 4 KLASY, OBIEKTY, METODY Java jest językiem w pełni zorientowanym obiektowo. Wszystkie elementy opisujące dane, za wyjątkiem zmiennych prostych są obiektami. Sam program też jest obiektem pewnej
Bardziej szczegółowoJava: interfejsy i klasy wewnętrzne
Java: interfejsy i klasy wewnętrzne Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak 1 INTERFEJSY Interfejs to opis co klasa implementująca dany interfejs powinna robić, ale bez określania
Bardziej szczegółowoKurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016
Wstęp - wykład 0 22 lutego 2016 Historia Simula 67 język zaprojektowany do zastosowan symulacyjnych; Smalltalk 80 pierwszy język w pełni obiektowy; Dodawanie obiektowości do języków imperatywnych: Pascal
Bardziej szczegółowoProgramowanie obiektowe
Laboratorium z przedmiotu Programowanie obiektowe - zestaw 04 Cel zajęć. Celem zajęć jest zapoznanie się ze sposobem działania popularnych. Wprowadzenie teoretyczne. Rozważana w ramach niniejszych zajęć
Bardziej szczegółowoObszar statyczny dane dostępne w dowolnym momencie podczas pracy programu (wprowadzone słowem kluczowym static),
Tworzenie obiektów Dostęp do obiektów jest realizowany przez referencje. Obiekty w języku Java są tworzone poprzez użycie słowa kluczowego new. String lan = new String( Lancuch ); Obszary pamięci w których
Bardziej szczegółowoProgramowanie w C++ Wykład 6. Katarzyna Grzelak. 1 kwietnia K.Grzelak (Wykład 6) Programowanie w C++ 1 / 43
Programowanie w C++ Wykład 6 Katarzyna Grzelak 1 kwietnia 2019 K.Grzelak (Wykład 6) Programowanie w C++ 1 / 43 Pojęcia z poprzednich wykładów Tablica to ciag obiektów tego samego typu, zajmujacy ciagły
Bardziej szczegółowoProgramowanie obiektowe
Laboratorium z przedmiotu Programowanie obiektowe - zestaw 02 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas i obiektów z wykorzystaniem dziedziczenia.
Bardziej szczegółowo