API STREAM WYRAŻENIA LAMBDA
|
|
- Seweryna Janicka
- 6 lat temu
- Przeglądów:
Transkrypt
1 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 2 Kolekcje
3 Kolekcje 3 Kolekcja kontener, obiekt grupujący elementy Collection Framework narzędzia służące do reprezentacji i manipulacji kolekcjami: interfejsy abstrakcyjne typy reprezentujące kolekcje, implementacje konkretne implementacje interfejsów, algorytmy metody narzędziowe pozwalające na wyszukiwanie, sortowanie, permutowanie itd. n mogą być wykorzystywane niezależnie od implementacji kolekcji
4 Interfejsy kolekcji 4 Collection najbardziej uniwersalny interfejs kolekcji brak ograniczeń typu elementów, powtarzalności lub kolejności, Set nie zawiera duplikatów elementów, List sekwencja elementów o określonej kolejności, może zawierać duplikaty, Queue sekwencja elementów (np. FIFO) lub posortowane elementy (kolejki priorytetowe),
5 Interfejsy kolekcji 5 Map odwzorowanie par klucz à wartość nie może zawierać powtórzonych kluczy, jeden klucz może wskazywać na jedną wartość, SortedSet zawiera posortowane elementy SortedMap sortowanie wzgle dem kluczy
6 6 Podstawowe operacje: przeglądanie kolekcji Interfejs List obsługuje indeksowanie elementów, np.: for(int i = 0; i < list.size(); ++i){ list.get(i); } for-each: for (Object o: collection) { /*...*/ } nie należy usuwać elementów z kolekcji, po której iterujemy (ConcurrentModificationException), działa również dla tablic; iterator: pozwala na usuwanie elementów n usuwać należy jedynie za pośrednictwem interfejsu iteratora! Iterator it = c.iterator(); while (it.hasnext()) { Object element = it.next(); if (/*...*/) { it.remove(); } }
7 Podstawowe operacje 7 Bulk operations operacje na wielu elementach kolekcji containsall, addall, removeall, retainall, clear Konwersja na tablice: Object[] toarray() zwraca kolekcję jako tablicę elementów typu Object, Type[] toarray(new Type[0]) zwraca kolekcję jako tablicę elementów typu Type
8 Sortowanie elementów kolekcji 8 Collections.sort(List list) sortowanie listy elementów typu Comparable Interfejs Comparable: pozwala na automatyczne sortowanie, int compareto(t other) zwracane wartości: n <0 gdy this mniejszy od other n 0 gdy this i other są równe n >0 gdy this większy od other
9 Sortowanie elementów kolekcji 9 boolean equals() metoda zdefiniowana w klasie Object (wszystkie klasy dziedziczą po Object) sprawdza czy obiekty są równe Gdy equals(other) zwraca true, metoda compareto(other) powinna zwracać 0! int hashcode() Jeśli nadpisujemy metodę equals() zawsze należy nadpisać również metodę hashcode() Gdy equals(other) zwraca true, metody hashcode() obu obiektów powinien zwracać tę samą wartość Wykorzystywana przez HashSet, HashMap itd.
10 Sortowanie elementów kolekcji 10 Nie wszystkie klasy dziedziczą po Comparable Collections.sort(List list, Comparator comp) Comparator<T> określa zasady porównywania elementów Jedna metoda: int compare(t o1, T o2) Comparator<String> comp = new Comparator<String>() public int compare(string o1, String o2) { return o1.length() - o2.length(); } };
11 Wybrane implementacje kolekcji 11 Interfejs Set: HashSet implementacja hash mapy, brak sortowania i stałej kolejności elementów, TreeSet implementacja struktury drzewiastej, zapewnia sortowanie, LinkedHashSet implementacja w postaci hash mapy i listy dwukierunkowej, zapewnia kolejnośc elementów; Interfejs List: ArrayList implementacja dynamicznie rozszerzalnej tablicy, LinkedList implementacja listy dwukierunkowej;
12 Wybrane implementacje kolekcji 12 Interfejs Queue: LinkedList, PriorityQueue implementacja kopca, zapewnia sortownie; Interfejs Map: HashMap brak sortowania, TreeMap sortowanie według kluczy, LinkedHashMap zachowana kolejność dodawania elementów.
13 Złożoność operacji 13 Kolekcja Dostęp losowy Wyszukiwanie Dodawanie ArrayList O(1) O(n) O(n) LinkedList O(n) O(n) O(1) HashSet O(1) O(1) O(1) HashMap O(1) O(1) O(1) TreeMap O(log(n)) O(log(n)) O(log(n)) PriorityQueue O(n)* O(n) O(log(n)) * tylko za pośrednictwem iteratora
14 Zewnętrzne biblioteki 14 Guava HashBiMap n Dwukierunkowe odwzorowanie MultiSet n Pozwala na duplikaty ArrayListMultiMap n Pozwala na duplikaty kluczy RangeSet n Zbiór rozłącznych niepustych zakresów Fastutil Eclipse Collections JCTools
15 API Stream 15 Dodatkowe operacje na kolekcjach umożliwia API Stream Lecz najpierw
16 16 Wyrażenia lambda
17 Wyrażenia lambda: motywacje Rozszerzenie języka o elementy programowania funkcyjnego, m.in.: Domknięcia Currying częściowa aplikacja funkcji Mapowanie, filtrowanie, redukcja Łatwość zrównoleglania kodu funkcyjnego Zwięzła składnia Wygoda użycia w połączeniu z API Stream
18 Wyrażenia lambda: realizacja Wprowadzone w wersji SE8 (marzec 2014) Zdefiniowane w kategoriach programowania obiektowego Nie stanowią wyłomu w obiektowości języka Nie są samodzielnym elementem języka Dają wygodniejszą składnię do wykonywania operacji obiektowych Zintegrowane w wielu miejscach w bibliotece standardowej, w szczególności w API Stream
19 Zwięzłość Przed wyrażeniami lambda: b.addactionlistener( new ActionListener() public void actionperformed(actionevent event) { handleevent(event); } }); Obecnie: b.addactionlistener(event -> handleevent(event));
20 Zwięzłość Przed: new Thread(new Runnable() public void run() { doinbackground(); } }); Obecnie: new Thread(() -> doinbackground());
21 Interfejsy funkcyjne Koncepcja wprowadzona w SE8 na potrzeby wyrażeń lambda Interfejsy posiadające pojedynczą metodę abstrakcyjną Instancje anonimowych klas wewnętrznych, implementujących interfejs funkcyjny, mogą zostać zastąpione wyrażeniem lambda
22 Podstawowa składnia Instancje anonimowych klas wewnętrznych: new InterfejsFunkcyjny() public ReturnType method(argumenty) { /*ciało*/ } }; Zastępowane przez wyrażenie lambda: (argumenty) -> {/*ciało*/}
23 Przykład Komparator: new Comparator<String>() public int compare(string s1, String s2){ return (s1.length() - s2.length()); } }; Komparator jako wyrażenie lambda: (String s1, String s2) -> { return (s1.length() - s2.length()); }
24 Cukier (składniowy) Typy argumentów po lewej stronie operatora -> są zazwyczaj zbędne Najczęściej mogą być wywnioskowane z deklaracji metody w interfejsie funkcyjnym Jeśli występuje pojedynczy argument, nawiasy () są opcjonalne Jeśli ciało składa się z pojedynczego wyrażenia, nawiasy {} są opcjonalne Słowo kluczowe return również jest opcjonalne
25 Przykład Komparator: new Comparator<String>() public int compare(string s1, String s2){ return (s1.length() - s2.length()); } }; Komparator jako wyrażenie lambda: (String s1, String s2) -> { return (s1.length() - s2.length()); } Z pominięciem elementów opcjonalnych: (s1, s2) -> s1.length() - s2.length()
26 Lambda a obiektowość Wyrażenia lambda są zdefiniowane w kategoriach programowania obiektowego Jakiego typu jest wyrażenie lambda? à typ interfejsu funkcyjnego, który implementuje Wiele sytuacji wymaga typowych interfejsów funkcyjnych
27 Typowe interfejsy funkcyjne: java.util.function Predicate<T> wejście: T, wyjście: boolean public interface Predicate<T> { boolean test(t t); } Function<T, R> wejście: T; wyjście: R Consumer<T> wejscie: T; wyjście: void Supplier<T> wejście: brak; wyjście: T BinaryOperator<T> wejście: T, T; wyjście: T
28 Zmienne typu interfejsu funkcyjnego Skoro znamy typ wyrażenia lambda, możemy przypisać je do zmiennej jak każdą instancję implementującą dany interfejs Runnable r = () -> doinbackground(); Thread thread = new Thread(r); Comparator<String> comparator = (s1, s2) -> s1.length() - s2.length(); Arrays.sort(array, comparator); Function<String, Integer> len = s -> s.length(); len.apply("platformy technologiczne");
29 Currying częściowe wiązanie parametrów Dwuargumentowe wyrażenie lambda: BiPredicate<String, String> startwithsimple = (letter, str) -> str.startswith(letter); Currying wymaga rozdzielenia parametrów na osobne wyrażenia lambda: Function<String, Predicate<String>> startswith = letter -> str -> str.startswith(letter); Związanie wartości pierwszego argumentu: Predicate<String> startswithp = startswith.apply("p"); Związanie wartości drugiego argumentu i wywołanie: boolean flag = startswithp.test("platformy");
30 Zasięgi, dostęp do zmiennych Wyrażenie lambda nie wprowadza nowego zasięgu Słowo kluczowe this odnosi się do klasy zewnętrznej, nie do instancji anonimowej klasy wewnętrznej Nie występuje KlasaZewnetrzna.this Można odwoływać się do pól klasy zewnętrznej Można odwoływać się do zmiennych lokalnych oznaczonych słowem kluczowym final Można odwoływać się do zmiennych lokalnych, które pozostają niezmienne, nawet jeśli nie posiadają słowa kluczowego final (ang. effectively final)
31 31 API Stream
32 API Stream Programowanie funkcyjne to nie tylko wyrażenia lambda Map Filter Reduce API Stream (SE8) wprowadza zestaw interfejsów pozwalających na pisanie kodu w duchu programowania funkcyjnego z użyciem wyrażeń lambda
33 API Stream prosty przykład Proceduralnie: for(integer i: list){ System.out.print(i); } API Stream: list.stream().foreach(i -> System.out.println(i)); pozyskanie strumienia wyrażenie lambda
34 API Stream prosty przykład Wywołanie metody stream() opcjonalne, jeśli chcemy użyć tylko foreach() Jeśli ciało wyrażenia lambda ogranicza się do wywołania metody o liście argumentów identycznej jak lista argumentów wyrażenia, to można je zastąpić referencją na metodę, np.: Lambda: i -> System.out.println(i) Referencja: System.out::println Wypisanie zawartości listy na konsolę: list.foreach(system.out::println);
35 Pozyskiwanie strumieni Z kolekcji: Collection<String> collection = /*...*/ Stream<String> stream = collection.stream(); Z tablicy, zbioru obiektów: Stream.of(T...) Z wyrażenia regularnego: Pattern.compile(",").splitAsStream("Waldemar,Korłub,KASK,ETI"); Z pliku: Files.lines(Paths.get("katalog", "plik.txt")) buduje ścieżkę do pliku z uwzględnieniem specyfiki systemu operacyjnego, np.: \ dla Windowsa; / dla UNIXa
36 Podstawowe metody foreach(consumer) map(function) filter(predicate) findfirst() findany() collect(collectors.tolist()) sorted()/sorted(comparator) skip(long) limit(long) count()
37 Złożony przykład #1 List<String> names = Files.lines(Paths.get("nazwiska.txt")) filtrowanie: zaczyna się na K mapowanie: na duże litery bez duplikatów.filter(s -> s.startswith("k")).map(string::touppercase).distinct().sorted().collect(tolist()); posortowane wyniki operacji w postaci listy
38 Złożony przykład #2a 38 class Developer { String name; String city; int age; List<String> languages; } /*...gettery i inne metody...*/
39 Złożony przykład #2b 39 List<Developer> developers = /*...*/ strumień deweloperów double avgage = developers.stream().filter(dev -> dev.getcity().equals("gdańsk")).maptoint(dev -> dev.getage()).average().orelse(0); obliczenie średniej może się nie udać zwraca 0, jeśli średnia nie występuje strumień liczb
40 Złożony przykład #2c 40 strumień deweloperów List<String> languages = developers.stream().map(developer::getlanguages) strumień zawierający listy języków List<String> Java C Ruby List<String> C C++ List<String> Java C# Perl.flatMap(Collection::stream) strumień nazw języków Java C Ruby C C++ Java C# Perl.distinct().sorted().collect(toList());
41 Grupowanie elementów 41 Map<String, List<Developer>> devsbycity = developers.stream().collect(groupingby(developer::getcity)); kolektor grupujący Klucz (String) Wartość (List<Developer>) Gdańsk Wrocław Warszawa
42 Operacje pośrednie i terminalne 42 Operacje pośrednie Zwracają kolejny strumień n np.: filter, map, sorted Odroczone wykonanie (ang. lazy execution) n Nie wykonują operacji dopóki nie nastąpi wywołanie metody terminalnej Operacje terminalne Przetwarzają dane w chwili wywołania n np.: collect, reduce, foreach Powodują wykonanie wszystkich wcześniejszych operacji pośrednich
43 Zrównoleglenie Kolekcja liczb: List<Integer> list = Arrays.asList(1, 2, 3, 4, 5); Przetwarzanie sekwencyjne: list.stream(). map(n -> Integer.toString(n * 2) + " "). foreach(system.out::print); // Przetwarzanie równoległe: list.parallelstream(). map(n -> Integer.toString(n * 2) + " "). foreach(system.out::print); //
44 Parallel stream 44 Oparty na frameworku Fork/Join (Java SE7) Domyślnie wykorzystuje pulę wątków ForkJoinPool.commonPool() liczba_wątków_puli = liczba_rdzeni 1 Wykorzystuje jako watek roboczy również wątek, w którym wywołano.parallelstream() liczba_wątków_roboczych = liczba_rdzeni Wywołania.parallelStream() z różnych miejsc aplikacji domyślnie używają tej samej puli wątków! Uwaga na zagładzanie zadań
45 Parallel stream własna pula wątków 45 Możliwe jest zdefiniowanie własnej puli wątków: ForkJoinPool custompool = new ForkJoinPool(4); custompool.submit( () -> devs.parallelstream().foreach(/*...*/)); Jeśli strumień zwraca wartość: ForkJoinTask<Double> task = custompool.submit( () -> developers.parallelstream().maptoint(developer::getage).average().orelse(0)); Double avg = task.get(); // wywołanie blokujące
46 Parallel stream własna pula wątków 46 Można również użyć klasy CompletableFuture, np.: CompletableFuture<Double> future = CompletableFuture.supplyAsync( () -> developers.parallelstream().maptoint(developer::getage).average().orelse(0), new ForkJoinPool(4)); Double avg = future.get(); CompletableFuture pozwala na budowanie sekwencji powiązanych ze sobą współbieżnych zadań
47 47 Pytania?
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
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. 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ół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 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ół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ół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ół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ółowoPROGRAMOWANIE FUNKCYJNE
PROGRAMOWANIE FUNKCYJNE ZAGADNIENIA: Funkcje Wyrażenia lambda Strumienie MATERIAŁY: https://fyingbytes.github.io/.../java8-part0.html http://www.oracle.com/technetwork/.../ma14-java-se-8-streams-2177646.html
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ół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ół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ółowoGUI - 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
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ół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ół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ół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ół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ół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ół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ół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ółowoWIELOWĄTKOWOŚĆ. Waldemar Korłub. Platformy Technologiczne KASK ETI Politechnika Gdańska
WIELOWĄTKOWOŚĆ Waldemar Korłub Platformy Technologiczne KASK ETI Politechnika Gdańska Wydajność 2 Do 2005 roku wydajność komputerów poprawiano zwiększając częstotliwość taktowania procesora 1995: Pentium
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ół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ół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ół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ół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 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ółowoInterfejsy w Java. Przetwarzanie równoległe. Wątki.
Informatyka I Interfejsy w Java. Przetwarzanie równoległe. Wątki. dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2017 Interfejsy w Java Pojęcie interfejsu w programowaniu Deklaracja
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 15 Elementy programowania funkcyjnego cd.
Programowanie w Javie wykład 15 1 Elementy programowania funkcyjnego cd. 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ółowoWątki. Definiowanie wątków jako klas potomnych Thread. Nadpisanie metody run().
Wątki Streszczenie Celem wykładu jest wprowadzenie do obsługi wątków w Javie. Czas wykładu 45 minut. Definiowanie wątków jako klas potomnych Thread Nadpisanie metody run(). class Watek extends Thread public
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ółowoKlasy 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
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ół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ół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ół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 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ół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ół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ół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ół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ółowoJęzyk Java część 2 (przykładowa aplikacja)
Programowanie obiektowe Język Java część 2 (przykładowa aplikacja) Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski @ pwr.wroc.pl Java Java przykładowa
Bardziej szczegółowoProgramowanie w Javie- wykład 12 Kolekcje (zbiory)
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
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: 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ół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ółowo1 Atrybuty i metody klasowe
1 Atrybuty i metody klasowe Składowe klasowe (statyczne) Każdy obiekt klasy posiada własny zestaw atrybutów. Metody używają atrybutów odpowiedniego obiektu. Czasem potrzeba atrybutów wspólnych dla wszystkich
Bardziej szczegółowoWstęp do ruby dla programistów javy
czyli dlaczego java ssie Akademickie Stowarzyszenie Informatyczne 26 lutego 2011 Podstawowe cechy Ruby vs Java Wieloparadygmatowy Imperatywny Typowanie Silne Dynamiczne Otwarte klasy Interpretowany Wszystko
Bardziej szczegółowoWykład 2 Składnia języka C# (cz. 1)
Wizualne systemy programowania Wykład 2 Składnia języka C# (cz. 1) 1 dr Artur Bartoszewski -Wizualne systemy programowania, sem. III- WYKŁAD Wizualne systemy programowania Budowa projektu 2 Struktura programu
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ół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. Wykład. Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ
Procesy i wątki Proces posiada samodzielne środowisko wykonawcze. Proces posiada własny zestaw podstawowych zasobów w czasie wykonywania; W szczególności, każdy proces ma własną przestrzeń pamięci. W uproszczeniu
Bardziej szczegółowoJDK 8 WPROWADZENIE DO WYBRANYCH ZAGADNIEŃ
JDK 8 WPROWADZENIE DO WYBRANYCH ZAGADNIEŃ by Szymon Stępniak / @wololock / crafted with reveal.js ABOUT ME Software Developer @ Ideazone (Torun, Poland) Java/Groovy, Grails contributor, TDD-holic @wololock
Bardziej szczegółowoWSNHiD, 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
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ół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ółowoProgramowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++
Programowanie Wstęp p do programowania Klasa 3 Lekcja 9 PASCAL & C++ Język programowania Do przedstawiania algorytmów w postaci programów służą języki programowania. Tylko algorytm zapisany w postaci programu
Bardziej szczegółowoKompletna dokumentacja kontenera C++ vector w - http://www.cplusplus.com/reference/stl/vector/
STL, czyli o co tyle hałasu W świecie programowania C++, hasło STL pojawia się nieustannie i zawsze jest o nim głośno... często początkujące osoby, które nie znają STL-a pytają się co to jest i czemu go
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ółowoProgramowanie obiektowe
Laboratorium z przedmiotu - zestaw 02 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas i obiektów z wykorzystaniem dziedziczenia. Wprowadzenie teoretyczne.
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ół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ół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ół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ółowoTYPY GENERYCZNE (GENERICS)
TYPY GENERYCZNE (GENERICS) ZAGADNIENIA: wprowadzenie, konwencje, metody, typy surowe parametry ograniczone podtypy, dziedziczenie, symbole wieloznaczne, ograniczenia. MATERIAŁY: http://docs.oracle.com/javase/tutorial/java/generics/
Bardziej szczegółowoPodstawy programowania. Podstawy C# Tablice
Podstawy programowania Podstawy C# Tablice Tablica to indeksowany zbiór elementów Tablica jest typem referencyjnym (deklaracja tworzy tylko referencję, sama tablica musi być utworzona oddzielnie, najprościej
Bardziej szczegółowoSwift (pol. jerzyk) nowy język programowania zaprezentowany latem 2014 r. (prace od 2010 r.)
Swift (pol. jerzyk) nowy język programowania zaprezentowany latem 2014 r. (prace od 2010 r.) przeznaczony do programowania zarówno pod ios jak i Mac OS X bazuje na logice Objective-C bez kompatybilności
Bardziej szczegółowoPolimorfizm. 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
Bardziej szczegółowoWspółbieżność w środowisku Java
Współbieżność w środowisku Java Wątki i ich synchronizacja Zagadnienia Tworzenie wątków Stany wątków i ich zmiana Demony Synchronizacja wątków wzajemne wykluczanie oczekiwanie na zmiennych warunkowych
Bardziej szczegółowoJava. Michał Wójcik. michal.wojcik@eti.pg.gda.pl http://mwojcik.eti.pg.gda.pl
Java Michał Wójcik michal.wojcik@eti.pg.gda.pl http://mwojcik.eti.pg.gda.pl Katedra Architektury Systemów Komputerowych Wydział Elektroniki, Telekomunikacji i Informatyki Politechnika Gdańska 5 kwietnia
Bardziej szczegółowoProgramowanie w języku Java 7 z biblioteką SWING
Programowanie w języku Java 7 z biblioteką SWING Opis Szkolenie przeznaczone jest dla osób bez większego doświadczenia w programowaniu. Pokrywa ono większość składni języka Java, skupiając się na podstawowych
Bardziej szczegółowoProgramowanie 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;
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ółowoProgramowanie obiektowe
Programowanie obiektowe Wykład 2: Wstęp do języka Java 3/4/2013 S.Deniziak: Programowanie obiektowe - Java 1 Cechy języka Java Wszystko jest obiektem Nie ma zmiennych globalnych Nie ma funkcji globalnych
Bardziej szczegółowoProgramowanie 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
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ół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ółowoPodstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja
Bardziej szczegółowoPodstawy 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
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ółowoKurs 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
Bardziej szczegółowoKlasy 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
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ółowoWykł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
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ół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 obiektowe
Programowanie obiektowe Podstawowe cechy i możliwości języka Scala mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 2017 1 / 32 mgr inż. Krzysztof Szwarc Programowanie obiektowe Informacje
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ółowoKOTLIN. Język programowania dla Androida
KOTLIN Język programowania dla Androida Historia Kotlin został opracowany przez firmę JetBrains Prace rozpoczęto w 2011 r., od 2012 r. dostępny na licencji Apache 2. Nazwa pochodzi od wyspy koło Petersburga
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 C++ Wykład 7. Katarzyna Grzelak. 23 kwietnia K.Grzelak (Wykład 7) Programowanie w C++ 1 / 40
Programowanie w C++ Wykład 7 Katarzyna Grzelak 23 kwietnia 2018 K.Grzelak (Wykład 7) Programowanie w C++ 1 / 40 Standard Template Library (STL) K.Grzelak (Wykład 7) Programowanie w C++ 2 / 40 C++ Templates
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ół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ółowoJava niezbędnik programisty spotkanie nr 9. Java 2 Platform, Standard Edition 5.0
Java niezbędnik programisty spotkanie nr 9 Java 2 Platform, Standard Edition 5.0 1 Historia 1991 rozpoczyna się the Green Project (to jeszcze era MS DOS) 1992 pojawia się język Oak 1995 zmiana nazwy z
Bardziej szczegółowoTworzenie aplikacji w języku Java
Tworzenie aplikacji w języku Java Wykład 1 Piotr Czapiewski Wydział Informatyki ZUT 2 października 2009 Piotr Czapiewski (Wydział Informatyki ZUT) Tworzenie aplikacji w języku Java 2 października 2009
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ółowoWprowadzenie db4o - podstawy db4o - technikalia Przydatne wiadomości. Wprowadzenie. db4o. Norbert Potocki. 1 czerwca 2009. Norbert Potocki db4o
Wprowadzenie - podstawy - technikalia Przydatne wiadomości Wprowadzenie 1 czerwca 2009 Wprowadzenie - podstawy - technikalia Przydatne wiadomości Wprowadzenie = bjects = database for objects w pełni obiektowa
Bardziej szczegółowoDziedziczenie. 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.
Bardziej szczegółowo