Programowanie Obiektowe (Java)
|
|
- Bogna Krajewska
- 9 lat temu
- Przeglądów:
Transkrypt
1 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. W języku Java istniej ą kontenery pozwalające np.: przechowywa ć obiekty w postaci listy wiązanej lub w postaci drzewa. Mechanizm działania takich obiektów jest ukryty przed ich użytkownikami (czyli równie ż przed nami). Jedyne czym dysponuje programista korzystający z kontenerów jest ich interfejs i dokumentacja do niego dostarczona wraz ze środowiskiem Javy. Stosując kontenery należy pamięta ć, że nie przechowuj ą one wprost obiektów, tylko referencje do nich. Referencje te nie s ą takiej klasy jak umieszczane w kontenerze obiekty, ale klasy Object. Oznacza to, ze umieszczając obiekt w kontenerze tracimy informacje o jego klasie. Wszystkie kontenery w języku Java dziel ą si ę na dwa rodzaje opisane dwoma różnymi interfejsami. Pierwszym rodzajem kontenerów s ą kolekcje. Ich typ jest określony interfejsem Collection. Kontenery te zazwyczaj przechowuj ą obiekty wedle jakiej ś określonej reguły, np.: zbiory przechowuj ą tylko różne elementy, przy czym można określi ć któr ą cech ą maj ą si ę one różni ć, a listy przechowuj ą obiekty w określonym porządku. Drugi rodzaj stanowi ą odwzorowania, określone interfejsem Map. Odwzorowania przechowuj ą pary obiektów, postaci klucz warto ść. Zapoznajmy si ę na początek z metodami, jakie s ą zadeklarowane w interfejsie Collection: boolean add(object) jest metod ą opcjonaln ą, służy do dodawania obiektu do kontenera, zwraca warto ść false jeśli ta operacja się nie powiedzie, boolean addall(collection) równie ż jest metod ą opcjonaln ą, jej działanie polega na dodaniu do kontenera wszystkich elementów, znajdujących si ę w kolekcji przekazanej jej przez parametr, zwraca warto ść false jeśli żaden z obiektów nie zostanie dodany, void clear() - podobnie jak poprzedniczki jest opcjonalna, usuwa wszystkie obiekty z kontenera, boolean contains(object) zwraca warto ść true jeśli w kontenerze znajduje si ę obiekt do którego została przekazana jej referencja, boolean containsall(collection) podobnie jak poprzedniczka, ale sprawdza nie pojedynczy obiekt, a wszystkie obiekty należące do podanej jej przez parametr kolekcji, boolean isempty() - sprawdza, czy kontener jest pusty, jeśli tak to zwraca warto ść true, Iterator iterator() - zwraca referencj ę do obiektu iteratora, pozwalającego porusza ć si ę po obiektach wchodzących w skład kontenera, boolean remove(object) jeśli obiekt, którego referencja została tej metodzie przekazana przez parametr, znajduje si ę w w kontenerze, to jest on usuwany i zwracana jest warto ść true, jest metod ą opcjonaln ą, boolean removeall(collection) usuwa wszystkie obiekty, z kontenera, które nale żą do przekazanej jej przez parametr kolekcji, jest metod ą opcjonaln ą, boolean retainall(collection) zatrzymuje w kontenerze te obiekty, które nale żą równie ż od kolekcji przekazanej jej przez parametr, jest metod ą opcjonaln ą, int size() - zwraca liczb ę obiektów umieszczonych w kontenerze, Object[] toarray() - zwraca tablic ę referencji do wszystkich obiektów z kontenera, Object[] toarray(object[] a) zwraca tablic ę referencji do wszystkich obiektów umieszczonych w kontenerze, typ referencji jest taki sam jak typ elementów tablic przekazanej przez parametr. Interfejs Collection jest rozszerzany przez dwa inne interfejsy: List i Set. Interfejs List określa metody pozwalające na przechowywanie obiektów w kontenerze w określonym porządku. Ten interfejs jest implementowany przez dwie klasy: ArrayList, która pozwala na szybki dostęp do przechowywanych obiektów, ale operacje wstawiania i usuwania obiektów dla tego kontenera s ą stosunkowo wolne. Klasa LinkedList pozwala stosunkowo szybko wstawia ć i usuwa ć elementy z kontenera, natomiast przeglądanie zgromadzonych w niej obiektów jest stosunkowo wolne. Na bazie LinkedList można budowa ć stosu i kolejki. Oto przykład ilustrujący użycie tych dwóch klas: class Element { private int value; return new Integer(value).toString(); public Element(int x) { value=x; W kontenerach klasy LinkedList i ArrayList będziemy umieszczać obiekty klasy Element. Klasa ta posiada pole prywatne o nazwie value, konstruktor z parametrem, który inicjalizuje to pole oraz nadpisuje metod ę tostring(). W metodzie main klasy publicznej Listy tworzymy dwa obiekty będące kontenerami, pierwszy klasy ArrayList, a drugi klasy LinkedList. Tworzymy te ż referencj ę, której typ jest określony interfejsem Iterator. Obiekty, których klasy implementuj ą taki interfejs s ą obiektami lekkimi (koszt ich tworzenia jest mały) i pozwalaj ą w uniwersalny sposób porusza ć si ę po obiektach umieszczonych w dowolnym kontenerze. Iterator podstawowy posiada trzy metody: next() - zwraca adres kolejnego obiektu w kontenerze, hasnext() - sprawdza, czy s ą jeszcze jakieś nieodwiedzone obiekty w kontenerze oraz remove() - usuwa obiekt z kontenera. Istniej ą bardziej specjalizowane kontenery dla niektórych rodzajów kontenerów. Pierwsz ą czynności ą wykonywan ą w programie jest dodanie do kontenera klasy ArrayList 20 obiektów klasy Element, które będ ą przechowywa ć wartości całkowite z przedziału od 0 do 19. Następnie zawarto ść całego kontenera jest wypisywana na ekran. Java posiada przeciążone wersje metod print() i 1
2 public class Listy { ArrayList a = new ArrayList(); LinkedList l = new LinkedList(); Iterator it; a.add(new Element((int)(Math.random()*20))); System.out.println(a); for(int i=0;i<a.size();i++) System.out.print(a.get(i)+" "); it = a.iterator(); while(it.hasnext()) System.out.print(it.next()+" "); it=a.iterator(); while(it.hasnext()) { l.addfirst(it.next()); it.remove(); System.out.println(l); while(!l.isempty()) System.out.print(l.removeLast()+" "); println(), które pozwalaj ą bezpośrednio wypisa ć obiekty należące do kontenera (dla każdego takiego obiektu wywoływana jest metoda tostring(), dlatego została ona przeciążona w klasie Element). W kolejnej pętli for zawarto ść kontenera jest ponownie wypisywana na ekran. Tym razem jednak pobieramy z kontenera klasy ArrayList adres każdego z przechowywanych w niej obiektów, za pomoc ą określonej w tej klasie metody get(indeks) i dopiero po jego uzyskaniu przekazujemy ten obiekt do metody println(). Kolejne wiersze programu pokazuj ą w jaki sposób możemy posługiwa ć si ę iteratorem. Najpierw musimy uzyska ć taki iterator wywołując metod ę iterator() kontenera ArrayList. Następnie w pętli while przechodzimy przez kolejne elementy należące do tego kontenera i wypisujemy je na ekran. Następnie ponownie uzyskujemy iterator, przechodzimy nim po obiektach zgromadzonych w kontenerze klasy ArrayList, wstawiamy je za pomoc ą metody addfirst() do kontenera klasy LinkedList i usuwamy z kontenera klasy ArrayList. 1 Na zakończenie wykorzystując wykorzystujemy metody isempty() i removelast() do wypisania na ekran i usunięcia obiektów z kontenera LinkedList. Interfejs Set pozwala przechowywa ć w kontenerze tylko obiekty unikatowe, przy czym unikatowo ść jest określana za pomoc ą metody equals(), która domyślnie (tzn. wtedy, kiedy jej nie przeciążymy) porównuje adresy obiektów. Interfejs Set implementuj ą dwie klasy HashSet i TreeSet. Pierwsza pozwala szybko znale źć obiekt w kontenerze, bowiem wykorzystuje technik ę haszowania. Decydujące znaczenie dla tej techniki ma metoda hashcode(), która jest definiowana w klasie Object. Jeśli chcemy wpłyn ąć na wyszukiwanie obiektów przechowywanych w kontenerze typu HashSet, to możemy w klasie tych obiektów nadpisa ć t ę metod ę. Kontener TreeSet przechowuje elementy w sposób uporządkowany hierarchicznie. Jego działanie opiera si ę o struktur ę drzewa. Oto przykład ilustrujący użycie takich kontenerów: Podobnie jak w poprzednim przykładzie klasa Element jest klasą obiektów, które będ ą przechowywane w kontenerze, jednakże tym razem jest ona inaczej zdefiniowana. Pierwsz ą rzecz ą, jaką można zauważy ć jest to, że implementuje ona interfejs class Element implements Comparable { Comparable. W rzeczywistości klasy wszystkich obiektów przechowywanych w kontenerach typu Set muszą private int value; implementowa ć taki interfejs, gdy ż implementacja tego interfejsu pozwala na uporządkowanie elementów wewnątrz tego zbioru. Z interfejsu Comparable pochodzi metoda compareto(). Zadaniem tej metody jest zwrócenie wartości -1 jeśli obiekt z którym porównuje si ę obiekt bieżący jest mniejszy, 0 jeśli return new Integer(value).toString(); obiekty s ą równe i 1 jeśli obiekt porównywany jest większy od obiektu bieżącego. W przypadku klasy Element czynnikiem decydującym o wartości tej relacji jest zawarto ść pola value. We wspomnianej klasie nadpisywana jest te ż metoda equals(), która 1 Należy wiedzie ć, że iteratory s ą jednorazowego użytku, tzn. po przejściu przez wszystkie obiekty zgromadzone w kontenerze nie możemy zawróci ć i ponownie przej ść przez te obiekty za pomoc ą tego samego iteratora, nawet jeśli tych obiektów nie usuwaliśmy. Jeśli nadal chcemy używa ć iteratora, to musimy uzyska ć z kontenera kolejny iterator. 2
3 public Element(int x) { value=x; public boolean equals(object obj) { return (obj instanceof Element) && (value == ((Element)obj).getValue()); public int hashcode() {return getvalue(); public int compareto(object obj) { int i = ((Element)obj).getValue(); return (i<value?-1:(i==value?0:1)); pobiera referencj ę do obiektu porównywanego, sprawdza, czy jest on klasy Equals za pomocą instrukcji instanceof 2, a następnie porównuje pola value bieżącego i przekazanego obiektu. Została równie ż zmieniona metoda hashcode(), która jako unikatow ą warto ść skrótu zwraca zawarto ść pola value. Oznacza to, że nie będzie można doda ć do kontenera dwóch obiektów o takiej samej wartości pola value. Klasa Element zawiera równie ż metod ę getvalue(), która zwraca zawarto ść pola value. M metodzie main klasy publicznej Zbiory stworzono dwa obiekty, jeden klasy HashSet, a drugi klasy TreeSet. W pętlach for dodawanych jest 20 obiektów klasy Element najpierw do pierwszego kontenera, następnie do drugiego. Na zakończenie zawarto ść tych kontenerów jest wypisywana na ekran za pomoc ą przeciążonej wersji metody println. private int getvalue() { return value; public class Zbiory { HashSet h = new HashSet(); TreeSet t = new TreeSet(); h.add(new Element((int)(Math.random()*20))); t.add(new Element((int)(Math.random()*20))); System.out.println(h); System.out.println(t); Interfejs Map deklaruje między innymi następujące metody: put(object key, Object value) umieszcza w kontenerze par ę obiektów klucz ( key) warto ść ( value), Object get(object key) zwraca na podstawie obiektu klucza obiekt warto ść, boolean containskey(object key) sprawdza, czy dany obiekt klucz zosta ł umieszczony w kontenerze, boolean containsvalue(object value) sprawdza, czy dany obiekt warto ść zosta ł umieszczony w kontenerze. Z opisu powyższych metod łatwo wywnioskowa ć, że kontenery implementujące interfejs Map działaj ą na zasadzie struktury asocjacyjnej, która kojarzy obiekt z innym obiektem, dlatego te ż te kontenery nazywane s ą odwzorowaniami. Interfejs Map jest implementowany przez dwie klasy: HashMap i TreeMap. Kontenery pierwszej klasy zapewniaj ą wstawianie i znajdywanie par obiektów w stałym czasie. Działanie kontenerów klasy TreeMap opiera si ę o struktur ę drzewa czerwono czarnego i przechowuje obiekty w sposób uporządkowany. Obiekty umieszczone w tym ostatnim kontenerze musz ą implementowa ć interfejs Comparable lub Comparator. Oto przykład ilustrujący użycie kontenera klasy HashMap: 2 Ta instrukcja jest części ą mechanizmu RTTI Javy, który pozwala określi ć rzeczywist ą klas ę obiektu w czasie wykonania programu. 3
4 class Klucz { private int klucz; public Klucz(int k) { klucz=k; public int getklucz() { return klucz; return "Klucz: " + new Integer(klucz); class Wartosc { private int wartosc; public Wartosc(int w) { wartosc=w; public int getwartosc() { return wartosc; return "Warto ść: " + new Integer(wartosc).toString(); public class Odwzorowanie { HashMap hm = new HashMap(); W programie mamy zdefiniowane trzy klasy. Klasa Klucz posiada pole prywatne klucz, konstruktor z parametrem, metod ę getklucz, która zwraca warto ść pola klucz oraz nadpisan ą metodę tostring(). Klasa Wartosc jest zbudowana podobnie (inne są tylko nazwy metoda i pól, ale działanie ich jest takie samo). W klasie publicznej Odwzorowanie, w metodzie main tworzony jest obiekt klasy HashMap, a następnie w pętli for umieszczanych jest w nim pi ęć par obiektów, przy pomocy metody put(). W kolejnych wierszach wypisywana jest na ekran zawarto ść tego kontenera przy pomocy przeciążonej wersji metody println(). Na koniec zwracany jest zbiór obiektów kluczy i jest wypisywany na ekran przy pomocy iteratora. for(int i=0; i<5; i++) hm.put(new Klucz((int)(Math.random()*25)), new Wartosc((int)(Math.random()*25))); System.out.println(hm); Set ks; ks = hm.keyset(); Iterator it = ks.iterator(); while(it.hasnext()) System.out.print(hm.get(it.next())+", "); System.out.println("\n"); System.out.println(ks); 4
5 2. Uwagi końcowe Stosując kontenery należy pamięta ć o tym, że mog ą one przechowywa ć tylko obiekty. Zmienne typów prostych należy opakowa ć w obiekty odpowiadające klas ą ich typowi, np.: zmienn ą typu int należy opakowa ć w obiekt klasy Integer 3. Korzystając z kontenerów należy pamięta ć, że ich klasy znajduj ą si ę w pakiecie java.util i że ten pakiet trzeba zaimportowa ć. 3 W Javie 5 ten problem zosta ł troch ę inaczej rozwiązany. 5
Realizacja 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
Programowanie 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
Kolekcje. 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
Kolekcja (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
Kolekcje - 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
Java 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
java.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
Kolekcje 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
Wydział 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
Kolekcje - 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
Podstawy 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
Ję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
KOLEKCJE 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).
Programowanie 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(),
Dawid 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{
Java 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
Lista, 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,
Kurs 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
Kurs 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
Programowanie 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
Platformy 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
jlabel: void setalignment(label.center/left/right) - wyrównanie String gettext() pobiera aktualny tekst napisu void settext(string text) ustawia
GUI / Kolekcje jlabel: void setalignment(label.center/left/right) - wyrównanie String gettext() pobiera aktualny tekst napisu void settext(string text) ustawia tekst napisu void setdisplayedmnemonic(char
Java: 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
Java 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
Kurs 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
Kolekcje obiektów. Wyj tki.
Kolekcje obiektów. Wyj tki. Robert A. Kªopotek r.klopotek@uksw.edu.pl Wydziaª Matematyczno-Przyrodniczy. Szkoªa Nauk cisªych, UKSW 30.03.2017 Kolekcje obiektów Kolekcje obiektów (Java Collections) sªu»
Programowanie obiektowe i język Java
Programowanie obiektowe i język Java Tomasz Głowacki Zajęcia finansowane z projektu "Rozwój i doskonalenie kształcenia na Politechnice Poznańskiej w zakresie technologii informatycznych i ich zastosowań
Dokumentacja 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
GUI - projektowanie interfejsów cz. II
Katedra Inżynierii Wiedzy, Uniwersytet Ekonomiczny w Katowicach Wykład 2 Java Foundations Classes przyciski; pola tekstowe; panele; okna dialogowe; biblioteka Swing. Metodyka (paradygmat) programowania
Algorytmy 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;
Java: 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
Comparable<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
Kolekcje. 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
Programowanie 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
Konstruktory. 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
Klasy abstrakcyjne i interfejsy
Klasy abstrakcyjne i interfejsy Streszczenie Celem wykładu jest omówienie klas abstrakcyjnych i interfejsów w Javie. Czas wykładu 45 minut. Rozwiązanie w miarę standardowego zadania matematycznego (i nie
Wykład 5 Wybrane zagadnienia programowania w C++ (c.d.)
Wykład 5 Wybrane zagadnienia programowania w C++ (c.d.) Kontenery - - wektor vector - - lista list - - kolejka queue - - stos stack Kontener asocjacyjny map 2016-01-08 Bazy danych-1 W5 1 Kontenery W programowaniu
dr 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
Programowanie 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
Tworzenie 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
Programowanie 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
Kolekcje w języku Java
Kolekcje w języku Java Prowadzący: Bartosz Walter Biblioteka Java Collections 1 Plan wykładu Historia Java Collections Podstawowe interfejsy i ich odpowiedzialność Iteratory Klasy pomocnicze i ich funkcjonalność
Kolekcje 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.
Języki i metody programowania Java Lab4 podejście obiektowe, zastosowanie pojemników
Języki i metody programowania Java Lab4 podejście obiektowe, zastosowanie pojemników https://docs.oracle.com/javase/tutorial/ http://zofia.kruczkiewicz.staff.iiar.pwr.wroc.pl/wyklady/pojava/javazk4_2.pdf
Wykł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
Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016
Wykład 1 3 marca 2016 Słowa kluczowe języka Java abstract, break, case, catch, class, const, continue, default, do, else, enum, extends, final, finally, for, goto, if, implements, import, instanceof, interface,
Techniki 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
Ję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
Ję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++...
Aplikacje 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
JAVA 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
Dziedziczenie. Tomasz Borzyszkowski
Dziedziczenie Tomasz Borzyszkowski Podstawy Zobacz: Dziedzictwo1.java Dziedzictwo2.java Dziedziczenie jest jedną z podstawowych cech OOP ponieważ umożliwia łatwe implementowanie klasyfikacji hierarchicznych.
Ję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,
Współ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
Java - tablice, konstruktory, dziedziczenie i hermetyzacja
Java - tablice, konstruktory, dziedziczenie i hermetyzacja Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak PLAN WYKŁADU zmienne tablicowe konstruktory klas dziedziczenie hermetyzacja
Zadanie polega na stworzeniu bazy danych w pamięci zapewniającej efektywny dostęp do danych baza osób.
Zadanie: Zadanie polega na stworzeniu bazy danych w pamięci zapewniającej efektywny dostęp do danych baza osób. Na kolejnych zajęciach projekt będzie rozwijana i uzupełniana o kolejne elementy omawiane
Podstawy Programowania Obiektowego
Podstawy Programowania Obiektowego Wprowadzenie do programowania obiektowego. Pojęcie struktury i klasy. Spotkanie 03 Dr inż. Dariusz JĘDRZEJCZYK Tematyka wykładu Idea programowania obiektowego Definicja
Wykł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
Laboratorium 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
Laboratorium 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
Kurs WWW. Paweł Rajba. pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/
Paweł Rajba pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/ Spis treści Wprowadzenie Automatyczne ładowanie klas Składowe klasy, widoczność składowych Konstruktory i tworzenie obiektów Destruktory i
import 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
Interfejsy i klasy wewnętrzne
Interfejsy i klasy wewnętrzne mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011 Interfejs klasy sposób komunikacji z jej obiektami (zestaw składowych publicznych). Określa on zestaw
1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie?
1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie? a) konstruktor b) referencje c) destruktor d) typy 2. Które z poniższych wyrażeń są poprawne dla klasy o nazwie
Wykład 6: Dziedziczenie
Wykład 6: Dziedziczenie Dziedziczenie Jeden z filarów obiektowości. Budowa jednej klasy na bazie drugiej, przez dodawanie/przesłanianie jej składowych: nad-klasa klasa bazowa pod-klasa klasa pochodna od
Kiedy 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,
Dziedziczenie. dr Jarosław Skaruz
Dziedziczenie dr Jarosław Skaruz http://jareks.ii.uph.edu.pl jaroslaw@skaruz.com Dziedziczenie specjalizacja Dziedziczenie generalizacja Generalizacja-specjalizacja jest takim związkiem pomiędzy klasami,
Rozdział 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
WSNHiD, Programowanie 2 Lab. 2 Język Java struktura programu, dziedziczenie, abstrakcja, polimorfizm, interfejsy
WSNHiD, Programowanie 2 Lab. 2 Język Java struktura programu, dziedziczenie, abstrakcja, polimorfizm, interfejsy Pojęcie klasy Program napisany w języku Java składa się ze zbioru klas. Każda klasa zawiera
Programowanie i struktury danych
Programowanie i struktury danych 1 / 30 STL Standard Template Library, STL (ang. = Standardowa Biblioteka Wzorców) biblioteka C++ zawierająca szablony (wzorce), które umożliwiają wielokrotne użycie. Główne
UML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami.
UML a kod w C++ i Javie Projektowanie oprogramowania Dokumentowanie oprogramowania Diagramy przypadków użycia Przewoznik Zarzadzanie pojazdami Optymalizacja Uzytkownik Wydawanie opinii Zarzadzanie uzytkownikami
0.1 Hierarchia klas. 0.1.1 Diagram. 0.1.2 Krótkie wyjaśnienie
0.1 Hierarchia klas 0.1.1 Diagram 0.1.2 Krótkie wyjaśnienie Po pierwsze to jest tylko przykładowe rozwiązanie. Zarówno na wtorkowych i czwartkowych ćwiczeniach odbiegaliśmy od niego, ale nie wiele. Na
Programowanie obiektowe
Programowanie obiektowe Wykład 2 Marcin Młotkowski 4 marca 2015 Plan wykładu 1 2 3 4 5 Marcin Młotkowski Programowanie obiektowe 2 / 47 Krótki opis C Obiektowy, z kontrolą typów; automatyczne odśmiecanie;
Kompilacja javac prog.java powoduje wyprodukowanie kilku plików o rozszerzeniu.class, m.in. Main.class wykonanie: java Main
Język obiektowy Wykład 13 Programowanie obiektowe z lotu ptaka, str 1 James Gosling, Mike Sheridan, Patrick Naughton Sun Microsystems 1995(20latmłodszyodC) C jest językiem proceduralnym Java jest językiem
Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych
Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych Obiekty reprezentują pewne pojęcia, przedmioty, elementy rzeczywistości. Obiekty udostępniają swoje usługi: metody operacje,
Algorytmy i Struktury Danych.
Algorytmy i Struktury Danych. Podstawowe struktury danych, cd. Wykład na podstawie ksiażki Roberta Sedgewicka i Kevina Wayne: Algorithms. Furth Edition. Princeton University dr hab. Bożena Woźna-Szcześniak
PARADYGMATY 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
Programowanie obiektowe
Programowanie obiektowe Laboratorium 3 i 4 - przypomnienie wiadomości o OOP na przykładzie Javy mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 8 marca 2017 1 / 20 mgr inż. Krzysztof Szwarc
Technologie 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,
Język JAVA podstawy. wykład 2, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna
Język JAVA podstawy wykład 2, część 1 1 Język JAVA podstawy Plan wykładu: 1. Rodzaje programów w Javie 2. Tworzenie aplikacji 3. Tworzenie apletów 4. Obsługa archiwów 5. Wyjątki 6. Klasa w klasie! 2 Język
Definiowanie własnych klas
Programowanie obiektowe Definiowanie własnych klas Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski @ pwr.wroc.pl Definiowanie własnych klas Autor:
Programowanie obiektowe - 1.
Programowanie obiektowe - 1 Mariusz.Masewicz@cs.put.poznan.pl Programowanie obiektowe Programowanie obiektowe (ang. object-oriented programming) to metodologia tworzenia programów komputerowych, która
Obiekt klasy jest definiowany poprzez jej składniki. Składnikami są różne zmienne oraz funkcje. Składniki opisują rzeczywisty stan obiektu.
Zrozumienie funkcji danych statycznych jest podstawą programowania obiektowego. W niniejszym artykule opiszę zasadę tworzenia klas statycznych w C#. Oprócz tego dowiesz się czym są statyczne pola i metody
Kontenery i iteratory. Wykorzystanie kontenerów w praktyce.
Instrukcja laboratoryjna nr 2 Programowanie w języku C 2 (C++ poziom zaawansowany) Kontenery i iteratory. Wykorzystanie kontenerów w praktyce. dr inż. Jacek Wilk-Jakubowski mgr inż. Maciej Lasota dr inż.
Polimorfizm. dr Jarosław Skaruz
Polimorfizm dr Jarosław Skaruz http://jareks.ii.uph.edu.pl jaroslaw@skaruz.com O czym będzie? finalne składowe klasy abstrakcyjne interfejsy polimorfizm Finalne składowe Domyślnie wszystkie pola i metody
Aplikacje 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
Informatyka 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
TEMAT : KLASY DZIEDZICZENIE
TEMAT : KLASY DZIEDZICZENIE Wprowadzenie do dziedziczenia w języku C++ Język C++ możliwa tworzenie nowej klasy (nazywanej klasą pochodną) w oparciu o pewną wcześniej zdefiniowaną klasę (nazywaną klasą
Klasy 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
Podstawy Programowania semestr drugi. Wykład czternasty
Wykład czternasty 1. Polimorfizm Ostatni wykład zakończyliśmy stwierdzeniem, że możemy obiektowi dowolnej klasy przypisa ć obiekt klasy dziedziczącej po tej klasie. Przypisanie takie obejmuje jednak jedynie
Klasy abstrakcyjne, interfejsy i polimorfizm
Programowanie obiektowe 12 kwietnia 2011 Organizacyjne Klasówka będzie 20 IV 2011. Sale jeszcze są pertraktowane. Materiał do wyjątków włącznie. Można mieć swoje materiały nieelektroniczne. Wywołanie z
Obszar 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
1 Wątki 1. 2 Tworzenie wątków 1. 3 Synchronizacja 3. 4 Dodatki 3. 5 Algorytmy sortowania 4
Spis treści 1 Wątki 1 2 Tworzenie wątków 1 3 Synchronizacja 3 4 Dodatki 3 5 Algorytmy sortowania 4 6 Klasa Runnable 4 Temat: Wątki Czym są wątki. Grafika. Proste animacje. Małe podsumowanie materiału.
STL Standardt Template Library (wprowadzenie)
STL Standardt Template Library (wprowadzenie) Biblioteka standardowych szablonów na dzień dzisiejszy stanowi jedną z najpotężniejszych możliwości języka C++ Zawiera szablony klas ogólnego przeznaczenia
Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego. Iwona Kochaoska
Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego Iwona Kochaoska Programowanie Obiektowe Programowanie obiektowe (ang. object-oriented programming) - metodyka tworzenia programów komputerowych,
Programowanie sieciowe
Programowanie sieciowe mgr Marcin Raniszewski mgr inŝ. Paweł Kośla Łódź, 2009 Wykład 6: Wielowątkowość, operacje na plikach, kolekcje 1 Plan wykładu Wątki (klasa Thread i interfejs Runnable) Synchronizacja
Programowanie 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
Programowanie w Javie 1 Wykład i Ćwiczenia 3 Programowanie obiektowe w Javie cd. Płock, 16 października 2013 r.
Programowanie w Javie 1 Wykład i Ćwiczenia 3 Programowanie obiektowe w Javie cd. Płock, 16 października 2013 r. Programowanie obiektowe Programowanie obiektowe (z ang. object-oriented programming), to
Programowanie 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.
Programowanie obiektowe
Wykład 2 28 lutego 2019 Plan wykładu 1 2 3 4 5 Plan wykładu 1 2 3 4 5 Krótki opis C Obiektowy, z kontrolą typów; automatyczne odśmiecanie; standardy ISO i ECMA; podobny składniowo do C++; Język C Krótka