Java niezbędnik programisty spotkanie nr 9. Java 2 Platform, Standard Edition 5.0
|
|
- Janusz Sowiński
- 8 lat temu
- Przeglądów:
Transkrypt
1 Java niezbędnik programisty spotkanie nr 9 Java 2 Platform, Standard Edition 5.0 1
2 Historia 1991 rozpoczyna się the Green Project (to jeszcze era MS DOS) 1992 pojawia się język Oak 1995 zmiana nazwy z Oak na Java 1996 JDK JDK 1.1 (JavaOne, z blisko 8000 uczestnikami, staje się największą konferencją programistyczną na świecie) 4 grudzień 1998 JDK promowane pod nazwą nazwą Java 2 Platform, Standard Edition; język w wersji 1.2; duże zmiany w API (mechanizm odzwierciedleń, Swing) 8 Maj 2000 J2SE 1.3 (HotSpot) 13 luty 2002 J2SE 1.4 (asercje, wyrażenia regularne, podczepianie wyjątków, zintegorwany parser XML i procesor XSLT) 29 wrzesień 2004 J2SE 5 (kolejna zmiana nazwy, Tiger); (typy generyczne, anotacje, typy wyliczeniowe, rozszerzone for,...) 2
3 Plany Kolejne wydania mają się ukazywać co miesiące, są opracowywane jako Java Specification Request (JSR) w ramach JCP i mają integrować wyniki pozostałych JSR: Lato 2006 Java, Standard Edition 6 (już nie J2SE) inaczej Mustang; Ujednolicone nazewnictwo obejmie również: Java, Enterprise Edition 5 Java, Micro Edition (nie ma numerka) (trzeba się odzwyczajać od J2EE, J2ME) 3
4 Źródła
5 Przedefiniowywanie typu zwrotnego class Owoc { class Gruszka extends Owoc { class DrzewoOwocowe { Owoc wydajplon() { return new Owoc(); class Wierzba extends DrzewoOwocowe { //przed Javą 5.0 Gruszki nie mogły rosnąć na Wierzbie Owoc wydajplon() { return new Gruszka(); //kontrola typów dopiero w chwili wykonania Gruszka gru = (Gruszka) wierzba.wydajplon(); 5
6 Przedefiniowywanie typu zwrotnego class Owoc { class Śliwka extends Owoc { class DrzewoOwocowe { Owoc wydajplon() { return new Owoc(); class Sosna extends DrzewoOwocowe { //przykład Śliwek na Sośnie w Javie 5.0 Śliwka wydajplon() { return new Śliwka(); //kontrola typów podczas kompilacji Śliwka śli = sosna.wydajplon(); 6
7 Kolejki FIFO Queue q = new LinkedList(); //FIFO q.offer("b"); q.add("a");//zapełnienie skutkuje "niepilnowanym" wyjątkiem //wart. zwrotna informuje, czy kolekcja się zmieniła q.offer("c");//zapełnienie to niekoniecznie sytuacja nietypowa //offer() rozróżnia po wartości zwrotnej System.out.print(q.poll());//kolejny element lub null System.out.print(q.remove());//zgłasza "niepilnowany" //ale może zgłosić "niepilnowany" NoSuchElementException System.out.print(q.peek());//podglądamy, ale nie zdejmujemy System.out.print(q.element());//jak peek //ale może zgłosić "niepilnowany" NoSuchElementException System.out.print(q.poll()); Wynik: baccc 7
8 Klejki priorytetowe PriorityQueue q = new PriorityQueue(12, //domyślny pocz. rozmiar=11 new Comparator() { public int compare(object ii, Object jj) { int i = (Integer) ii;//automatyczne odpakowywanie int j = (Integer) jj;//automatyczne odpakowywanie int wynik = i%2 - j%2;//parzyste < nieparzyste if (wynik == 0) wynik = i-j; return wynik; ); for (int i = 1; i <= 12; i++) q.offer(i);//auto. opakowywanie for (int i = 1; i <= 12; i++) System.out.print(q.poll()+, ); Wynik: 2, 4, 6, 8, 10, 12, 1, 3, 5, 7, 9, 11, 8
9 Iterowanie po kolejce priorytetowej Iterator jedynie podgląda elementy i nie gwarantuje żadnego porządku. for (int i = 1; i <= 12; i++) q.offer(i);//auto. opakowywanie for (Iterator iter = q.iterator(); iter.hasnext();) { //kontrola typów dopiero w chwili wykonania int el = (Integer) iter.next(); el += 10; System.out.println(el++, ); Przykładowy wynik: 12, 14, 16, 18, 20, 22, 17, 11, 19, 15, 21, 13, 9
10 Nowy rodzaj pętli for Dla kolekcji i tablic dodano nowy rodzaj pętli for zintegrowanej z iteratorem. for (Object i : q) { int el = (Integer) i; System.out.print(el+10); System.out.print("-"); System.out.print(((Integer) i) + 10);//auto. odpakowywanie System.out.print(", "); Przykładowy wynik: 12-12, 14-14, 16-16, 18-18, 20-20, 22-22, 17-17, 11-11, 19-19, 15-15, 21-21, 13-13, 10
11 Nowy rodzaj pętli for Jeżeli bardzo nam zależy na użyciu iteratora można sobie poradzić przy pomocy klasy Arrays. Object[] tab = q.toarray(); Arrays.sort(tab, new MójComparator()); for (Object i : tab) { int el = (Integer) i; System.out.print(el+10); System.out.print(", "); Wynik: 12, 14, 16, 18, 20, 22, 11, 13, 15, 17, 19, 21, 11
12 Typy generyczne Najważniejszym udogodnieniem w Javie 5.0 są typy generyczne. class ComparatorNaInteger implements Comparator<Integer> { public int compare(integer i, Integer j) { int wynik = i%2 - j%2; if (wynik == 0) wynik = i-j; return wynik; Od Javy 5.0 zmieniły się definicje wielu podstawowych klas, np. Interface Comparator<T> int compare(t o1, T o2) 12
13 Typy generyczne PriorityQueue<Integer> q = new PriorityQueue<Integer>(12, new ComparatorNaInteger()); for (int i = 1; i <= 12; i++) q.offer(i); for (int i = 1; i <= 12; i++) { int el = q.poll()+10;//poll() zwraca Integery, a nie Objecty System.out.print(el+", "); 13
14 Typy generyczne PriorityQueue<Integer> q = new PriorityQueue<Integer>(12, new ComparatorNaInteger()); //można podać zwykły Comparator, ale pojawią się ostrzeżenia for (int i = 1; i <= 12; i++) q.offer(i);//auto. opakowywanie for (Integer el : q) {//niestety losowa kolejność System.out.print(el+10); System.out.print(", "); 14
15 Nie trzeba już tyle rzutować //jako klucza mapy często używa się liczb lub napisów Map<Integer, Integer> kwadraty = new HashMap<Integer, Integer>(); for (int i = 0; i < 100; i++) kwadraty.put(i, i*i); for (int i = 0; i < 8; i++) { int n = i * 13; System.out.println(n+" do kwadratu to "+kwadraty.get(n)); //teraz jest też łatwiej dobrać się do dziwnych wartości Map<String, List<List<int[]>>> mapa = getmymap(); int x = map.get(klucz).get(0).get(0)[0]; 15
16 A co z jawnymi iteratorami? List<String> napisy = new LinkedList<String>(); napisy.add("trele"); napisy.add("morele"); for (Iterator<String> i = napisy.iterator(); i.hasnext(); ) { String s = i.next(); System.out.println(s); //nieparametryzowany iterator działa po staremu (trzeba rzutować) for (Iterator i = napisy.iterator(); i.hasnext(); ) { String s = (String) i.next(); System.out.println(s); 16
17 Bezpieczny iterator do niebezpiecznej kolekcji Opracował List napisy = new LinkedList(); napisy.add("fiu"); napisy.add("bździu"); //napisy.add(1); for (Iterator<String> i = napisy.iterator(); i.hasnext(); ) { String s = i.next();//ew. błąd dopiero w czasie wykonania System.out.println(s); Sparametryzowane typy można też przekazywać jako parametry lub wynik metody. Tak samo jak powyżej można też oszukiwać. Kompilator wspomaga nas ostrzeżeniami. 17
18 A co z hierarchią typów? Jest oparta na typach bazowych, a nie na parametrach! LinkedList<Number> numerki = new LinkedList<Number>(); List<Number> jeszczewięcejnumerków = numerki; //numerki = new LinkedList<Float>(); //LinkedList<Object> obiekty = numerki; //oto potencjalne zagrożenia //obiekty.add("pseudo numerek"); 18
19 Erasure Typy generyczne są brane pod uwagę jedynie w chwili kompilacji. List<String> napisy = new LinkedList<String>(); W trakcie działania programu są wymazywane (ang. erase). List napisy = new LinkedList(); To kolejny powód dlaczego parametry nie są brane pod uwagę przy dziedziczeniu. Z tego powodu typy generyczne dają się oszukiwać (jedyną wskazówką będą ostrzeżenia) List<Integer> ints = new LinkedList<Integer>(); List staralista = ints;//działa ze względu na wsteczną kompatyb. staralista.add("klops");//tu nie ma żadnych problemów Integer i = ints.get(0);//za to będą w chwili wykonania 19
20 Oszukiwać można też przy pomocy RTTI Opracował class Oszustwo { public static List<Integer> ints = new ArrayList<Integer>(); static void wypisz() { for (Integer i : ints) System.out.println(i); static void test() { ints.add(1); ints.add(2); ints.add(3); try { List list = (List) Oszustwo.class.getDeclaredField("ints").get(null); list.add("niezły numerek");//tu nadal będzie ostrzeżenie catch (Exception e) { e.printstacktrace(); wypisz(); 20
21 Jak pozbyć się ostrzeżeń? Lepsza jednak taka ochrona typów niż żadna. Trzeba dołożyć wszelkich starań, żeby gotowe programy nie generowały żadnych ostrzeżeń. ostrzeżenia powstają przy przekazywaniu parametrów, a przy pobieraniu wyników nie: static void test2(list list) { for (Iterator i = list.iterator(); i.hasnext(); ) System.out.println(i.next().toString()); Jeżeli potrzebne są kolekcje ogólne, to parametryzujemy typem Object, np. List<Object> (zazwyczaj słaby pomysł ze względu na hierarchię typów) lub używamy? (niestety dostajemy typy read-only): static void test3(list<?> list) { //list.add((object) "napis"); for (Iterator<?> i = list.iterator(); i.hasnext(); ) System.out.println(i.next().toString()); 21
22 Parametryzowanie własnych typów class Śmietnik<T> { protected List<T> zawartość; public Śmietnik() { zawartość = new ArrayList<T>(); public boolean czypusty() { return zawartość.size() == 0; public int rozmiar() { return zawartość.size(); public void wyrzuć(t o) { zawartość.add(o); public T wygrzeb() { if (!czypusty()) return zawartość.remove(0); else return null; Śmietnik<String> napisy = new Śmietnik<String>(); 22
23 Uwaga na atrybuty statyczne Parametryzujemy egzemplarze (Śmietnik<Byte>, Śmietnik<Float>,...), a nie klasę więc nie można nic zakładać o składowych statycznych //private static List<T> listastat = new ArrayList<T>(); //static T weźsmiecia(śmietnik<t> r) { return r.wygrzeb(); Oczywiście typy o określonym parametrze działają: static public int max(śmietnik<byte> b, Śmietnik<Float> f) { return Math.max(b.rozmiar(), f.rozmiar()); Można też wskazać parametry dla metody statycznej public static <T, U> int max2(śmietnik<t> t, Śmietnik<U> u) { return Math.max(t.rozmiar(), u.rozmiar()); 23
24 Parametry można ograniczać class ŚmietnikMatematyka<N extends Number> extends Śmietnik<N> { public ŚmietnikMatematyka() { super(); public double suma() { double suma = 0; for (N n : zawartość) suma += n.doublevalue(); return suma; 24
25 Podobnie z parametrami metod public static double suma(śmietnik<? extends Number> śm) { double suma = 0; for (Number n : śm.zawartość) suma += n.doublevalue(); return suma; public static <T extends Number> double suma(śmietnik<t> t1, Śmietnik<T> t2) { double suma = 0; for (Number n : t1.zawartość) suma += n.doublevalue(); for (Number n : t2.zawartość) suma += n.doublevalue(); return 0; 25
26 Zagadka class NieudanyComparatorNaInteger<Integer> implements Comparator<Integer> { public int compare(integer i, Integer j) { int wynik = i%2 - j%2; if (wynik == 0) wynik = i-j; return wynik; 26
TYPY 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ół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ółowoProgramowanie w języku Java
Programowanie w języku Java Wykład 1: Wprowadzenie http://eclipse.elektron.pk.edu.pl/~sdeniziak/ Hasło: java2012 języku Java 1 Literatura Bruce Eckel, Thinking in Java edycja polska, wydanie. 4, Helion
Bardziej szczegółowoDariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki
Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki Problem: Jak zaimplementować stos? Co się stanie gdy dodamy do stosu obiekt typu Czlowiek? Co się stanie, gdy spróbujemy ten obiekt odczytać
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ółowoPolimorfizm a klasy generyczne w języku Java. Zdzisław Spławski 1
Polimorfizm a klasy generyczne w języku Java Zdzisław Spławski 1 Klasyfikacja polimorfizmów Polimorfizm ogólnie oznacza wielopostaciowość i umożliwia przypisanie różnych
Bardziej szczegółowoJava niezbędnik programisty spotkanie nr 10. Typy wyliczeniowe, auto. opakowywanie/odpakowywanie,...
Java niezbędnik programisty spotkanie nr 10 Typy wyliczeniowe, auto. opakowywanie/odpakowywanie,... 1 Jak nie należy implementować typu wyliczeniowego Opracował class Przedmiot1 { public static final int
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ół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ół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ół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ół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 podstawy jęyka. Wykład 2. Klasy abstrakcyjne, Interfejsy, Klasy wewnętrzne, Anonimowe klasy wewnętrzne.
Java podstawy jęyka Wykład 2 Klasy abstrakcyjne, Interfejsy, Klasy wewnętrzne, Anonimowe klasy wewnętrzne. Wyjątki: obsługa błędów Wydział Fizyki i Informatyki Stosowanej, Uniwersytetu Łódzkiego 12.03.2015
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ół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ół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ół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ółowoProgramowanie obiektowe
Przygotował: Jacek Sroka 1 Programowanie obiektowe Wykład 3 Java podstawy Przygotował: Jacek Sroka 2 Przypomnienie Analiza, projektowanie, programowanie, testowanie, wdrażanie Iteracyjnie nie kaskadowo
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ół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ółowoKurs 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,
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ółowoJęzyki Programowania II Wykład 3. Java podstawy. Przypomnienie
Języki Programowania II Wykład 3 Java podstawy Przypomnienie Analiza, projektowanie, programowanie, testowanie, wdrażanie Iteracyjnie nie kaskadowo Przypadki użycia = opowiastki o używaniu systemu = wymagania
Bardziej szczegółowoZad.30. Czy można utworzyć klasę, która implementuje oba interfejsy?
Zad.28. Utwórz klasę, która implementuje oba interfejsy: public void pisz ( ) ; public void pisz ( ) ; Zad.29. Utwórz klasę, która implementuje oba interfejsy: public void pisz ( int l i c z b a ) ; public
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ółowoAkademia ETI. Wprowadzenie do programowania w Javie PG Java User Group Przemysław Kulesza
Akademia ETI Wprowadzenie do programowania w Javie PG Java User Group 1 Dlaczego Java? Najpopularniejszy język programowania obiektowego Łatwy w nauce Dostępny na wiele platform 2 Platformy Java Java Standard
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ółowoProgramowanie wieloplatformowe w Java
Programowanie wieloplatformowe w Java dr Krzysztof Podlaski 1 Kwestie organizacyjne Wykład: 15 godzin Zaliczenie test Ćwiczenia 30 godzin (dr K.Podlaski) Zaliczenie projekt Konsultacje: do ustalenia, Kontakt:
Bardziej szczegółowoMetody sparametryzowane
Metody sparametryzowane Nie tylko klasy i pola można parametryzować. Parametry typu można zastosować również do pojedynczych metod. Podstawienie typu zostanie wykonane podczas wywołania metody. class Box
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ółowoGeneratory. Michał R. Przybyłek
Generatory Michał R. Przybyłek 1 Wstęp Generator to potencjalnie nieskończony, leniwie obliczany, ciąg wartości. W zależności od tego, która ze stron decyduje o wygenerowaniu nowej wartości wyróżniamy
Bardziej szczegółowoWykład 7: Pakiety i Interfejsy
Wykład 7: Pakiety i Interfejsy Plik Źródłowy w Javie Składa się z: instrukcji pakietu (pojedyncza, opcjonalna) instrukcji importujących (wielokrotne, opcjonalne) deklaracji klasy publicznej (pojedyncza,
Bardziej szczegółowoProgramowanie w języku Java WYKŁAD
Programowanie w języku Java WYKŁAD dr inż. Piotr Zabawa Certyfikowany Konsultant IBM/Rational e-mail: pzabawa@pk.edu.pl www: http://www.pk.edu.pl/~pzabawa 03.03.2014 WYKŁAD 2 Elementy leksykalne Java Elementy
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ółowoWykład 2 Wybrane konstrukcje obiektowych języków programowania (1)
MAS dr. Inż. Mariusz Trzaska Wykład 2 Wybrane konstrukcje obiektowych języków programowania (1) Zagadnienia o Podstawy o Kontrolowanie sterowania o Klasy o Interfejsy o Obsługa błędów o Pojemniki o System
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ółowoJava - 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
Bardziej szczegółowoKlasy generyczne. ZbiórLiczb. ZbiórCzegokolwiek. Zbiór
Klasy generyczne Klasy generyczne Klasy generyczne są to klasy o parametryzowanych typach danych. Klasy generyczne posiadają kompletną implementację, jednak nie definiują typów danych wykorzystanych w
Bardziej szczegółowoSZKOLENIE. Programowanie w języku Java. tel.: ; fax: ,
SZKOLENIE Programowanie w języku Java tel.: +48 22 100-48-96; fax: +48 22 300-52-79, e-mail: biuro@akademiaasap.pl TRENERZY DORADCY TRENERZY i KONSULTANCI NASZA MISJA DOSTARCZENIE RZETELNEJ INFORMACJI
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 Platform Micro Edition
Java Platform Micro Edition Instalacja środowiska programistycznego Java Platform Micro Edition Software Development Kit 3.0 for Windows z lokalizacji http://www.oracle.com/technetwork/java/javame/downloads/sdk30-jsp-139759.html
Bardziej szczegółowoWPROWADZENIE DO JĘZYKA JAVA
WPROWADZENIE DO JĘZYKA JAVA programowanie obiektowe KRÓTKA HISTORIA JĘZYKA JAVA KRÓTKA HISTORIA JĘZYKA JAVA 1991 - narodziny języka java. Pierwsza nazwa Oak (dąb). KRÓTKA HISTORIA JĘZYKA JAVA 1991 - narodziny
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ółowoNa przykładzie języków Java, C# i odrobiny C++ Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki
Na przykładzie języków Java, C# i odrobiny C++ Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki Refleksja Typy anonimowe Wyrażenia lambda Extension methods *LINQ Java jest językiem dynamicznym
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ółowoZofia Kruczkiewicz, Programowanie obiektowe - java, wykład 2 1
PODSTAWOWE ELEMENTY JĘZYKA JAVA WYRAŻENIA, OPERATORY, INSTRUKCJE 1. Operatory arytmetyczne +, -, /,*, % Przykład 1 programu z interfejsem konsolowym public class Lab2_1 // Tworzy generator liczb losowych,
Bardziej szczegółowoProgramowanie obiektowe
Programowanie obiektowe Wykład 7: Typy uogólnione. Stringi. 4/21/2013 S.Deniziak: Programowanie obiektowe - Java 1 Jak operować na danych różnych typów? Wymagana zgodność typów Rzutowanie w górę Tylko
Bardziej szczegółowoInformatyka I. Dziedziczenie. Nadpisanie metod. Klasy abstrakcyjne. Wskaźnik this. Metody i pola statyczne. dr inż. Andrzej Czerepicki
Informatyka I Dziedziczenie. Nadpisanie metod. Klasy abstrakcyjne. Wskaźnik this. Metody i pola statyczne. dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2017 Dziedziczenie klas
Bardziej szczegółowoJAVA. Platforma JSE: Środowiska programistyczne dla języka Java. Wstęp do programowania w języku obiektowym. Opracował: Andrzej Nowak
JAVA Wstęp do programowania w języku obiektowym Bibliografia: JAVA Szkoła programowania, D. Trajkowska Ćwiczenia praktyczne JAVA. Wydanie III,M. Lis Platforma JSE: Opracował: Andrzej Nowak JSE (Java Standard
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ółowoSzablony. Szablony funkcji
Szablony Szablony sa mechanizmem ponownego wykorzystania kodu (reuse) W przypadku funkcji ponownie wykorzystany jest algorytm W przypadku klas ponownie wykorzystane sa wszystkie skladowe Deklaracja szablonu
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ół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ółowoWykład 8: Obsługa Wyjątków
Wykład 8: Obsługa Wyjątków Wyjątki Wyjątek to sytuacja nienormalna, która pojawia się w trakcie wykonania programu. W językach bez obsługi wyjątków, błędy są wykrywane i obsługiwane ręcznie, zwykle przez
Bardziej szczegółowo2. Składnia, środowisko i konwencje w Javie
Gdańsk, 2014 Ogólnie o Javie Środowisko Java jest językiem programowania, którego podstawowym celem jest realizacja zasady write once, run anywhere. Oznacza to możliwość wykonania tego samego programu,
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ółowoKurs programowania. Wykład 3. Wojciech Macyna. 22 marca 2019
Wykład 3 22 marca 2019 Klasy wewnętrzne Klasa wewnętrzna class A {... class B {... }... } Klasa B jest klasa wewnętrzna w klasie A. Klasa A jest klasa otaczajac a klasy B. Klasy wewnętrzne Właściwości
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ół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 w języku
Programowanie obiektowe w języku C++ Stanisław Gepner sgepner@meil.pw.edu.pl Dziedziczenie Wstęp Zacznijmy od przykładu Przykład rolniczy Każde zwierzątko wydaje dźwięk Każde się tak samo porusza Musimy
Bardziej szczegółowoDziedziczenie. 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,
Bardziej szczegółowoCo jeszcze mogą nam dać adnotacje? Adam Warski
Co jeszcze mogą nam dać adnotacje? Adam Warski Weryfikacja statyczna Sprawdzanie własności programu bez jego uruchomienia Weryfikacja statyczna Najprostszy przykład: Sprawdzanie typów Przy wywołaniu metody
Bardziej szczegółowo/** Program demonstrujący działanie klasy GregorianCalendar import java.util.*; public class TestKalendarza // zbuduj d i zainicjalizuj z aktualną datą GregorianCalendar d = new GregorianCalendar(); int
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ół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ółowo1. Co będzie wynikiem wykonania poniŝszych instrukcji? g2d.gettransform().scale(1, -1); g2d.gettransform().translate(4, -8); g2d.drawline(4, 0, 4, 4);
1. Co będzie wynikiem wykonania poniŝszych instrukcji? g2d.gettransform().scale(1, -1); g2d.gettransform().translate(4, -8); g2d.drawline(4, 0, 4, 4); a) b) c) d) 2. Jaki będzie wynik kompilacji i wykonania
Bardziej szczegółowodziedziczenie - po nazwie klasy wystąpią słowa: extends nazwa_superklasy
PODSTAWOWE ELEMENTY JĘZYKA JAVA TYPY DANYCH, OPERATORY I INSTRUKCJE 1. Definicja klasy, dziedziczenie, implementowanie metod interfejsów class nazwa_klasy //ciało klasy Klasa: przed słowem class moŝe wystąpić
Bardziej szczegółowo1. Co można powiedzieć o poniższym kodzie (zakładając, że zaimportowano wszystkie niezbędne klasy)?
1. Co można powiedzieć o poniższym kodzie (zakładając, że zaimportowano wszystkie niezbędne klasy)? public static void test1() { Object[] o = new Object[] { "1", "2", "3" ; List l = new ArrayList(Arrays.asList(o));
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ółowoWyjątki Monika Wrzosek (IM UG) Programowanie obiektowe 180 / 196
Wyjątki 180 / 196 Wyjątki W Javie istnieje mechanizm tzw. wyjątków (ang. exception), który pozwala na przechwytywanie błędów pojawiających się w programie. Kompilacja tab [ 1 0 ] = 100; spowoduje powstanie
Bardziej szczegółowoProgramowanie w Internecie. Java
Programowanie w Internecie Java Autor: dr inż. Zofia Kruczkiewicz Literatura: L. Lemay, R. Cadenhead P. Naughton Krzysztof Barteczko Boone Barry Java 2 dla każdego Podręcznik Języka Programowania Java
Bardziej szczegółowoProgramowanie obiektowe
Programowanie obiektowe II. Dziedziczenie Małgorzata Prolejko OBI JA16Z03 Plan Klasy bazowe i pochodne. Hierarchia dziedziczenia. Polimorfizm. Wiązanie dynamiczne. Ograniczenie dziedziczenia, klasy i metody
Bardziej szczegółowoJęzyki i metodyka programowania. Język C# pętle, sterowanie, wyjątki
Język C# pętle, sterowanie, wyjątki Język C# pętle Pętle: while ( ) do { while ( ); for ( ; ; ) foreach ( in
Bardziej szczegółowoZaawansowane aplikacje WWW - laboratorium
Zaawansowane aplikacje WWW - laboratorium Przetwarzanie XML (część 2) Celem ćwiczenia jest przygotowanie aplikacji, która umożliwi odczyt i przetwarzanie pliku z zawartością XML. Aplikacja, napisana w
Bardziej szczegółowoProgramowanie urządzeń mobilnych
Programowanie urządzeń mobilnych Najważniejsze platformy mobilne Android ios Windows Mobile / Windows Phone 7 Symbian Bada BlackBerry OS Brew Android Producent systemu: Open Handset Alliance Producenci
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ół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ół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ółowoJęzyki i metody programowania Java INF302W. Wykład 1 (część 1) na podstawie https://docs.oracle.com/javase/tutorial/ Autor Dr inż. Zofia Kruczkiewicz
Języki i metody programowania Java INF302W Wykład 1 (część 1) na podstawie https://docs.oracle.com/javase/tutorial/ Autor Dr inż. Zofia Kruczkiewicz 1 Struktura wykładu 1. Porównanie języków Java i C++,
Bardziej szczegółowoNa przykładzie języków Java, C# i odrobiny C++ Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki
Na przykładzie języków Java, C# i odrobiny C++ Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki Refleksja Typy anonimowe Wyrażenia lambda Extension methods *LINQ Nullable type, null-coalesce,
Bardziej szczegółowoProgramowanie i projektowanie obiektowe
Programowanie i projektowanie obiektowe Klasy i obiekty Paweł Daniluk Wydział Fizyki Jesień 2011 P. Daniluk (Wydział Fizyki) PO w. V Jesień 2011 1 / 13 Typy danych (w Javie) Typy pierwotne typ wartości
Bardziej szczegółowoKurs programowania. Wykład 13. Wojciech Macyna. 14 czerwiec 2017
Wykład 13 14 czerwiec 2017 Java vs cpp - podobieństwa Podobny sposób definiowania klas. Występowanie typów podstawowych: boolean, char, byte, short, int, long, float, double. Podobna zasada definiowania
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ółowopublic - może być używana w kodzie poza klasą, jedna klasa ModyfikatorKlasy może być kombinacją wyrażeń:
Klasy Metody [ModyfikatorMetody] TypZwrotny Nazwa (Typ arg1, ) { // implementacja metody ModyfikatorMetody może być kombinacją wyrażeń: modyfikator widzialności public dostępna dla metod spoza klasy protected
Bardziej szczegółowoPodstawy otwartych języków programowania Język Java
Podstawy otwartych języków programowania Język Java Wiktor Wandachowicz Platforma Java Stworzona przez Sun Microsystems, Inc. J2SE Java 2 Standard Edition (platforma ogólnego przeznaczenia/desktop) J2EE
Bardziej szczegółowoBEAN VALIDATION. Waldemar Korłub. Narzędzia i aplikacje Java EE KASK ETI Politechnika Gdańska
BEAN VALIDATION Waldemar Korłub Narzędzia i aplikacje Java EE KASK ETI Politechnika Gdańska Bean Validation Uniwersalny mechanizm walidacji danych we wszystkich warstwach aplikacji Warstwa interfejsu,
Bardziej szczegółowoProgramowanie obiektowe zastosowanie języka Java SE
Programowanie obiektowe zastosowanie języka Java SE Wstęp do programowania obiektowego w Javie Autor: dr inŝ. 1 Java? Java język programowania obiektowo zorientowany wysokiego poziomu platforma Javy z
Bardziej szczegółowoProgramowanie obiektowe
Programowanie obiektowe III. Refleksja Małgorzata Prolejko OBI JA16Z03 Plan Klasa Class. Analiza funkcjonalności klasy. Podstawy obsługi wyjątków. Zastosowanie refleksji do analizy obiektów. Wywoływanie
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ółowoProgramowanie urządzeń mobilnych. dr inż. Andrzej Grosser na podstawie wykładu dr inż. Juliusz Mikoda
Programowanie urządzeń mobilnych dr inż. Andrzej Grosser na podstawie wykładu dr inż. Juliusz Mikoda Najważniejsze platformy mobilne Android ios Windows Phone 8.1 BlackBerry OS Sailfish OS Tizen Brew Android
Bardziej szczegółowoOperator przypisania. Jest czym innym niż konstruktor kopiujący!
Operator przypisania Jest czym innym niż konstruktor kopiujący! Domyślnie jest zdefiniowany jako przypisanie składowa po składowej (zatem niekoniecznie bajt po bajcie). Dla klasy X definiuje się jako X&
Bardziej szczegółowoJAX-RS czyli REST w Javie. Adam Kędziora
JAX-RS czyli REST w Javie Adam Kędziora Webservice Usługa sieciowa (ang. web service) komponent programowy niezależny od platformy i implementacji, dostarczający określonej funkcjonalności. SOAP,UDDI,XML,WSDL
Bardziej szczegółowoProgramowanie w Javie cz. 1 Wstęp. Łódź, 24 luty 2014 r.
Programowanie w Javie cz. 1 Wstęp Łódź, 24 luty 2014 r. Prawdy i mity o Javie Java jest techniką webową? (tak, platforma Java EE, aplety) Java jest bezpieczna? (tak, aplety, brak operowania na pamięci)
Bardziej szczegółowo1. Co można powiedzieć o poniższym kodzie? public interface I { void m1() {}; static public void m2() {}; void abstract m3();
1. Co można powiedzieć o poniższym kodzie? public interface I { void m1() {; static public void m2() {; void abstract m3(); default static void m4() {; a) Poprawnie zadeklarowano metodę m1() b) Poprawnie
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ół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ół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ółowoZdalne wywołanie metod - koncepcja. Oprogramowanie systemów równoległych i rozproszonych Wykład 7. Rodzaje obiektów. Odniesienie do obiektu
Zdalne wywołanie metod - koncepcja Oprogramowanie systemów równoległych i rozproszonych Wykład 7 RMI (Remote Method Invocation) - obiektowe RPC, dostarcza klientowi interfejs do obiektu, implementacja
Bardziej szczegółowoWywoływanie metod zdalnych
Wywoływanie metod zdalnych model systemu Wywoływanie metod zdalnych aplikacja kliencka interfejs obiekt serwer Podejście obiektowe do budowy systemów rozproszonych proxy szkielet sieć Istota podejścia
Bardziej szczegółowo