Wprowadzenie do Javy dla programistów C++

Podobne dokumenty
Programowanie obiektowe

Języki Programowania II Wykład 3. Java podstawy. Przypomnienie

Programowanie obiektowe

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016

Aplikacje Internetowe. Najprostsza aplikacja. Komponenty Javy. Podstawy języka Java

Programowanie obiektowe

Kurs programowania. Wykład 9. Wojciech Macyna. 28 kwiecień 2016

Platformy Programistyczne Podstawy języka Java

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h]

Wprowadzenie do języka Java

Tworzenie aplikacji w języku Java

Kurs programowania. Wykład 9. Wojciech Macyna

2. Składnia, środowisko i konwencje w Javie

Ćwiczenie 1. Przygotowanie środowiska JAVA

JAVA W SUPER EXPRESOWEJ PIGUŁCE

Kurs programowania. Wykład 3. Wojciech Macyna. 22 marca 2019

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji.

Wykład 2 Wybrane konstrukcje obiektowych języków programowania (1)

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki

Programowanie obiektowe

1. Wprowadzenie do C/C++

Interfejsy, klasy wewn trzne jako szczególny rodzaj obiektów

1. Wprowadzenie do C/C++

Java - wprowadzenie. Programowanie Obiektowe Mateusz Cicheński

JAVA. Platforma JSE: Środowiska programistyczne dla języka Java. Wstęp do programowania w języku obiektowym. Opracował: Andrzej Nowak

Wykład 7: Pakiety i Interfejsy

Programowanie w Internecie. Java

Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków

1 Atrybuty i metody klasowe

Podstawowe części projektu w Javie

Kolekcje obiektów. Wyj tki.

Java: kilka brakujących szczegółów i uniwersalna nadklasa Object

Podstawy Języka Java

wiczenie 1 Podstawy j zyka Java. Instrukcje warunkowe

Kurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016

public - może być używana w kodzie poza klasą, jedna klasa ModyfikatorKlasy może być kombinacją wyrażeń:

Microsoft IT Academy kurs programowania

Dawid Gierszewski Adam Hanasko

Podstawy i języki programowania

Multimedia JAVA. Historia

Dokumentacja do API Javy.

Kurs programowania. Wykład 13. Wojciech Macyna. 14 czerwiec 2017

Typy uogólnione. Robert A. Kªopotek Wydziaª Matematyczno-Przyrodniczy. Szkoªa Nauk cisªych, UKSW

STRUMIENIE DANYCH, SERIALIZACJA OBIEKTÓW

Realizacja ekstensji klasy. Paulina Strzelecka, Tomasz Roszkowski

Programowanie obiektowe

Obszar statyczny dane dostępne w dowolnym momencie podczas pracy programu (wprowadzone słowem kluczowym static),

Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

1. Co można powiedzieć o poniższym kodzie? public interface I { void m1() {}; static public void m2() {}; void abstract m3();

Java Język programowania

Wykład 8: Obsługa Wyjątków

JAVA?? to proste!! Autor: wojtekb111111

Podstawy i języki programowania

Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016

Języki i metodyka programowania. Język C# pętle, sterowanie, wyjątki

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Podstawy języka Java. przygotował:

Polimorfizm, metody wirtualne i klasy abstrakcyjne

Języki i metody programowania Java INF302W Wykład 3 (część 1)

1 Podstawy c++ w pigułce.

dr inż. Piotr Czapiewski Tworzenie aplikacji w języku Java Laboratorium 1

Java Zadanie 1. Aby poprawnie uruchomić aplikację desktopową, należy zaimplementować główną metodę zapewniającą punkt wejścia do programu.

JAVA. Strumienie wejścia i wyjścia. Pliki - zapis i odczyt

Java Podstawy. Michał Bereta

Programowanie i struktury danych 1 / 44

Wprowadzenie. Organizacja pracy i środowisko programistyczne. Mirosław Ochodek

Programowanie w języku Java WYKŁAD

WYJĄTKI. Jest ona jednak czasochłonna i prowadzi do duŝego zapotrzebowania na zasoby systemu.

Język ludzki kod maszynowy

Wykład 2: Podstawy Języka

dziedziczenie - po nazwie klasy wystąpią słowa: extends nazwa_superklasy

Obiektowe programowanie rozproszone Java RMI. Krzysztof Banaś Systemy rozproszone 1

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

Programowanie w Javie - wykład 2

Programowanie w Javie - wykład 3

Java: interfejsy i klasy wewnętrzne

Podstawy, środowisko JDK, kompilacja programów z linii poleceń

Wzorce projektowe strukturalne cz. 1

Programowanie w środowiskach graficznych. Wykład 3 Język C#

Programowanie wieloplatformowe w Java

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

1. Co można powiedzieć o poniższym kodzie (zakładając, że zaimportowano wszystkie niezbędne klasy)?

Kiedy potrzebne. Struktura (rekord) Struktura w języku C# Tablice struktur. struktura, kolekcja

STRUMIENIE TEKSTOWE WEJŚCIOWE WPROWADZANIE DANYCH STRUMIENIE BAJTOWE, STRUMIENIE TEKSTOWE

Języki programowania - podstawy

UML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami.

Podstawy programowania obiektowego

1 Podstawy c++ w pigułce.

Dziedziczenie. dr Jarosław Skaruz

Współbieżność i równoległość w środowiskach obiektowych. Krzysztof Banaś Obliczenia równoległe 1

WYMAGANIA EDUKACYJNE I KRYTERIA OCENIANIA Z PRZEDMIOTU PROGRAMOWANIE APLIKACJI INTERNETOWYCH

Enkapsulacja, dziedziczenie, polimorfizm

Java podstawy jęyka. Wykład 2. Klasy abstrakcyjne, Interfejsy, Klasy wewnętrzne, Anonimowe klasy wewnętrzne.

Spis treści. O autorze (11) O redaktorze technicznym (11) Wstęp (13) Rozdział 1. Podstawy Javy (19)

Programowanie i struktury danych

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);

Język JAVA podstawy. Wykład 6, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Podstawy programowania w języku C

Klasy i obiekty cz II

MATERIAŁY DO ZAJĘĆ II

Transkrypt:

Wprowadzenie do Javy dla programistów C++ J. Apelski G. Chimosz D. Górczy«ska E. Luty Wydziaª Matematyki, Informatyki i Mechaniki 20 listopada 2007

Wprowadzenie Wprowadzenie

Wprowadzenie Java ró»ni si od C++: narzucono ograniczenia, które uªatwiaj testowanie programów i czyni kod przejrzystym, usuni to wska¹niki i uproszczono model zarz dzania zasobami, np. pami ci operacyjn, usuni to niektóre konstrukcje j zyka C++ (np.: typedef, #dene, goto, struct, union) oraz preprocesor, jako elementy niezgodne z paradygmatem programowania obiektowego oraz utrudniaj ce zrozumienie i modykowanie kodu; mo»na je zast pi poprzez denicje klas, usuni to mo»liwo± przeci»ania operatorów, usuni to wielodziedziczenie (zast puj c je mechanizmem implementacji interfejsów), uwolniono programist od konieczno±ci przydzielania i zwalniania pami ci, zlikwidowano mo»liwo± deniowania procedur i funkcji nie zwi zanych z denicj»adnej klasy.

ródªa wiedzy nt. Javy http://java.sun.com/developer/onlinetraining/ Dokumentacja na stronach Suna (http://java.sun.com/docs/books/tutorial/) Tutoriale, wiki (http://arturt.republika.pl/java/index.htm) Wa»niak (http://wazniak.mimuw.edu.pl/index.php?title=po_ Wst%C4%99p_do_Javy) Przedmioty monograczne na wydziale Ksi»ki (http://helion.pl/online/thinking/index.html#tij2)

Typy danych boolean (8 bitów) int (32 bity ze znakiem) long (64 bity ze znakiem) char (16 bitów bez znaku) byte (8 bitów, l. caªkowita) short (16 bitów, l. caªkowita) oat (32 bity, l. zmiennoprzecinkowa) double (64 bity, l. zmiennoprzecinkowa) void dla null typy referencyjne: typy klas typy interfejsów typy tablicowe.

Alfabet Unicode, UTF-16 np. Kªapu± = "K\u0142ap\u015B" Nazwy zmiennych mog si zaczyna od _, $ lub dowolnej litery alfabetu Wa»na wielko± liter i jeszcze a'propos zmiennych: zerowane lub w przypadku boolean false deklaracja, jak w C i a'propos komentarzy: //do ko«ca wiersza /* przez kilka wierszy */

Literaªy liczba caªkowita ze znakiem - literaª typu int lub long (wymuszenie, przez dodanie l na ko«cu) liczby wi ksze od 2.147.483.647, automatycznie long rozpoczynaj ce si znakiem '0' s liczbami ósemkowymi '0x' lub '0X' stanowi liczby szesnastkowe (wielko± liter niewa»na) literaªy rzeczywiste, domy±lnie double (wymuszenie oat przez f na ko«cu) boolean: true i false znakowe np. 'a' typu string "Dysia ma kotka" literaªy do znaków specjalnych np. \n, \t jak w C++ literaª null

Priorytety operatorów x.y f(x) a[x] x++ x + -! ++x x (T)x * / % + - (binarne) << >> >>> < > <= >= instanceof ==!= & &&? : = *= /= %= += -= <<= >>= >>>= &= = =

Jeszcze o operatorach leniwe (pojedyncze) i gorliwe (podwójne) >>> - przesuni cie bitowe w prawo bez powielania najbardziej znacz cego bitu konwersje: char -> int byte -> short -> int -> long -> oat -> double boolean nie konwertuje si na int rzutowanie : (typ) warto±

Instrukcje C++-identyczne pusta ; deklaracja etykieta o.wypisz(i); warunkowa while (i>0) i; for w wersji podstawowej return blok throw new Wyj tek();

Instrukcje C++-podobne deklaracja tablic 1 switch (i){ 2 default : System. out. println (" Wartosc spoza zakresu "); break ; / / Tak, n i e m u s i b y c o s t a t n i a! 3 case 1: case 2: System. out. println (" Dodatnie "); break ; 4 case -1: case -2: System. out. println (" Ujemne "); break ; 5 case 0: System. out. println (" Zero "); break ; } break i continue (bo mog by z etykietami, a przez to wyskoczy kilka poziomów)

Instrukcje inne for each 1 int [] tab = new int [10]; 2 for ( int elt : tab ) 3 System. out. print ( elt +", "); assert 1 assert i >0; 2 assert i >=0: " i (" + i + ") mniejsze od zera "; try do i++ while ( i < 0 );

Obiektowo± Obiektowo±

Klasy Ka»da klasa w oddzielnym pliku (dobra praktyka) Automatyczne od±miecanie pami ci nie ma destruktorów, jest tylko nalize() 1 [ abstract final ] class Nazwa extends Nadklasa 2 implements Interfejs1, I2 { 3 [ public protected private ] 4 [ static final transient volatile ] 5 typ nazwa ; 6 7 [ public protected private ] [ static final ] 8 [ void typ ] Nazwa ( Argumenty ) { 9 / * t r e s c m e t o d y * / 10 this. nazwa ; 11 super. nazwa ; 12 } 13 };

Klasy (c.d.) 1 class HelloWorld { 2 public static void main ( String args []) { 3 System. out. println (" Hello world "); 4 } 5 } ; 6 7 / *... * / 8 9 HelloWorld hw ; / / n u l l 10 hw = new HelloWorld () ; 11 HelloWorld hw2 = hw ; / / t e n s a m o b i e k t! 12 hw = null ; / / o b i e k t n a d a l i s t n i e j e

Metody 1 class HelloWorld { 2 public HelloWorld () { / * k o n s t r u k t o r * / }; 3 int call_me () { 4 System. out. println (" Who is speaking?"); 5 return 0; 6 } 7 protected void finalize () {}; 8 } ; 9 10 / *... * / 11 12 HelloWorld hw = new HelloWorld () ; 13 hw. call_me () ;

Widoczno± zmiennych i metod Modykatory dost pu: public dost p dla wszystkich private dost p dla swojej klasy protected dost p dla pakietu i podklas domy±lnie dost p dla wszystkich z pakietu Metody klasowe: static mo»na korzysta tylko z innych statycznych metod i zmiennych, zabronione u»ycie this oraz super 1 class HelloWorld { 2 static int i = 1; 3 static { i = 3; / * p r z y l a d o w a n i u k l a s y * / }; 4 };

Dziedziczenie 1 class HelloWorld { 2 int i; 3 private int tajne ; 4 int give_var () { return i; }; 5 } ; 6 7 class SuperHello extends HelloWorld { 8 int j; 9 int give_ var () { return i * j; }; 10 / / n i e m a m y d o s t e p u d o " t a j n e " 11 void hello () {}; 12 } 13 14 / *... * / 15 16 HelloWorld shw = new SuperHello () ; 17 / / s h w. h e l l o ( ) ; j e s t n i e p o p r a w n e

Dziedziczenie (c.d.) 1 class HelloWorld { 2 int i; 3 HelloWorld ( int x) { i = x; }; 4 void zero () { i = 0; }; 5 }; 6 7 class SuperHello extends HelloWorld { 8 int j; 9 SuperHello () { super (3) ; j = 5; super. zero () }; 10 };

final Znaczenia sªowa kluczowego final: staªe w klasach metoda, której nie mo»na przesªoni klasa, po której nie mo»na dziedziczy

Interfejsy Klasa bez implementacji Bez danych Mo»na dziedziczy Klasa mo»e implementowa kilka interfejsów 1 interface Nazwa { 2 void zroba () ; 3 void zrobb () ; 4 } ; 5 6 class Klasa implements Nazwa { 7 void zroba () { ; }; 8 void zrobb () { ; }; 9 int zmienna ; 10 int zm () { return zmienna }; 11 } ;

Pakiety Sposób na grupowanie klas Organizacja w katalogach $CLASSPATH 1 package HelloPack ; / / w p i e r w s z e j l i n i j c e p l i k u! 2 3 import java. util. Stack ; 4 import java. awt.*; / / w o l n i e j s z a ( t y l k o ) k o m p i l a c j a 5 6 class HelloWorld { }; 7 8 class SuperHello extends HelloWorld { }; 9 10 / *... * /

Mo»liwo±ci Mo»liwo±ci

Wyj tki Mechanizm obsªugi bª dów wbudowany w j zyk Wyj tki - obiekty Mo»liwo± przerwania ci gu zagnie»d»onych wywoªa«(instrukcja throw) Mo»liwo± zaznaczania wyj tków, które maj by zgªoszone na zewn trz (klauzula throws) Nieobsªu»one wyj tki - przerwanie dziaªania programu Mo»liwo± tworzenia wªasnych podklas wyj tków

Klasy wyj tków Klasa Throwable Podklasy: Error - powa»ne bª dy niezwi zane z dziaªaniem aplikacji Exception - bª dy, na które aplikacja powinna reagowa wªasne wyj tki tworzy si jako podklasy tej klasy wyró»niona podklasa RuntimeException - typowe bª dy powstaj ce podczas dziaªania maszyny wirtualnej

Instrukcja try... catch Blok do obsªugi wyj tków Blok finally opcjonalny, wykonywany niezale»nie od nast pienia wyj tku Schemat bloku: 1 try { 2 / * b l o k i n s t r u k c j i m o g a c y c h s p o w o d o w a c w y j a t e k * / 3 } 4 catch ( TypWyjatku1 idwyjatku1 ){ 5 / * o b s l u g a w y j a t k u 1 * / 6 } 7 catch ( TypWyjatkuN idwyjatkun ){ 8 / * o b s l u g a w y j a t k u N * / 9 } 10 finally { 11 / * i n s t r u k c j e * / / / w y k o n u j a s i e z a w s z e 12 }

Instrukcja throws Wyrzucenie wyj tku poza metod, w której wyst piª 1 SpecyfikatorDostepu typwyniku nazwametody ( parametry ) 2 throws TypWyjatku { 3 / * c i a l o m e t o d y * / 4 };

Operacje wej±cia-wyj±cia Operacje wej±cia-wyj±cia opieraj si na strumieniach Standardowo zdeniowane strumienie: System.in - strumie«wej±ciowy System.out - strumie«wyj±ciowy System.err - strumie«zwi zany z obsªug bª dów Wypisanie danych na ekran - metoda println: System.out.println(Hello)

Wczytanie danych z klawiatury Potrzebne klasy: InputStream - jej instancj jest System.in InputStreamReader BufferedReader Metoda readline() klasy BueredReader 1 BufferedReader inbr ; 2 InputStreamReader inp ; 3 inp = new InputStreamReader ( System. in ); 4 inbr = new BufferedReader ( inp ); 5 6 String line = inbr. readline () ; / / c z y t a n i e l i n i i t e k s t u z k l a w i a t u r y Mo»na zrezygnowa z tworzenia zmiennej referencyjnej inp: 1 BufferedReader inbr = new BufferedReader ( new InputStreamReader ( System. in )); 2 String line = inbr. readline () ; / / c z y t a n i e l i n i i t e k s t u z k l a w i a t u r y

Wczytanie liczb z klawiatury Potrzebne klasy: StreamTokenizer metoda nexttoken() - pobiera kolejn jednostk leksykaln pole nval - je±li obecna jednostka leksykalna jest liczb, zawiera jej warto±, w przeciwnym przypadku zawiera 0 1 int a; 2 Reader r = new BufferedReader ( new InputStreamReader ( System. in )); 3 StreamTokenizer inp = new StreamTokenizer ( r); 4 inp. nexttoken () ; 5 a = inp. nval ;

Operacje na plikach Potrzebne klasy: File - opis pliku FileInputStream - do strumieniowych operacji na plikach FileOutputStream - do strumieniowych operacji na plikach BufferedReader BufferedWriter DataInputStream DataOutputStream

Pisanie do pliku 1 String line ; 2 FileOutputStream fout = null ; 3 File file = newfile (" text. txt "); 4 fout = new FileOutputStream ( file ); 5 DataOutputStream out = new DataOutputStream ( fout ); 6 BufferedReader inbr = new BufferedReader ( new InputStreamReader ( System. in )); 7 line = inbr. readline () ; 8 fout. writebytes ( line + '\n ');

Czytanie z pliku 1 String line ; 2 FileInputStream fin = null ; 3 File file = newfile (" text. txt "); 4 fin = new FileInputStream ( file ); 5 DataInputStream out = new DataINputStream ( fin ); 6 BufferedReader inbr = new BufferedReader ( new InputStreamReader ( fin )); 7 line = inbr. readline () ; 8 System. out. println ( line );

Typy sparametryzowane http://java.sun.com/j2se/1.5/pdf/generics-tutorial.pdf Typy umo»liwiaj ce tworzenie klas, w których typ danych jest parametrem Uªatwiaj implementacj algorytmów dziaªaj cych identycznie niezale»nie od typu stosowanych danych Uªatwiaj tworzenie bezpiecznego, wielokrotnie u»ywanego kodu Rozwi zuj problem bezpiecze«stwa typów Ró»ni si od szablonów z C++ i od typów sparametryzowanych z C# Rodzaje typów sparametryzowanych: Klasy sparametryzowane Metody sparametryzowane Interfejsy sparametryzowane

Klasy sparametryzowane Skªadnia klasy sparametryzowanej: 1 class nazwa - klasy <lista - parametrow - typow >{ 2 / / d e f i n i c j a k l a s y 3 }; Przykªad prostej klasy sparametryzowanej: 1 class MojaKlasa <T >{ 2 T ob ; / / d e k l a r a c j a o b i e k t u t y p u T 3 4 MojaKlasa (T o){ 5 ob = o; 6 } 7 T getob () { 8 return ob ; 9 } 10 }

Typy ograniczone Mechanizm zapewnienia,»e podawane typy b d wyª cznie podan klas bazow lub jej podklasami Skªadnia: <T extends klasa-bazowa> Przykªad zastosowania: 1 class MojaKlasaNumeryczna <T extends Number >{ 2 T [] nums ; 3 MojaKlasaNumeryczna ( T [] o){ 4 nums = o; 5 } 6 double avg () { 7 double sum = 0.0; 8 for ( int i =0; i < nums. length ; i ++) 9 sum += nums [i ]. doublevalue () ; / / m e t o d a k l a s y N u m b e r 10 return sum / nums. length ; 11 } 12 }

Argumenty wieloznaczne Umo»liwiaj tworzenie metod korzystaj cych z argumentów ró»nych typów Przykªad zastosowania: 1 boolean sameavg ( MojaKlasaNumeryczna <? > ob ){ 2 if ( avg () == ob. avg () ) 3 return true ; 4 return false ; 5 }

Kolekcje http://java.sun.com/javase/6/docs/api/java/util/package-summary.html Szkielet Collections Framework - jeden z najbardziej u»ytecznych podsystemów Javy Podobie«stwa mi dzy kolekcjami Javy a STL z C++ Konkretne klasy zapewniaj ró»ne implementacje standardowych interfejsów Kolekcje w pakiecie java.util - klasy i interfejsy pochodz ce z ró»nych epok rozwoju j zyka Interfejsy kolekcji: Collection - praca na grupach obiektów List - obsªuga sekwencji Queue - obsªuga list, w ktorych elementy usuwa si tylko z pocz tku listy Set - obsªuga zbiorów zawieraj cych unikatowe elementy SortedList - Set z obsªug posortowanych zbiorów Przykªady klas wbudowanych w pakiecie java.util: Arrays - zawiera metody przydatne w trakcie korzystania z tablic Vector, Stack - klasy starsze, cho jeszcze u»ywane

Klasa Arrays Pozwala wykona typowe operacje na tablicach Niektóre metody klasy Arrays: equals(arr1, arr2) - porównuje dwie tablice fill(arr, value) - wypeªnia tablic zadanym elementem sort(arr) - sortuje rosn co elementy tablicy aslist(arr) - zwraca list zawieraj c elementy danej tablicy binarysearch(arr, value) - zwraca indeks podanego elementu Przykªady zastosowania: 1 int [] arr1 = {1, 2, 3}; 2 int [] arr2 = {6, 5, 4}; 3 boolean rowne = Arrays. equals ( arr1, arr2 ); / / r o w n e = f a l s e 4 Arrays. fill ( arr1, 4) ; / / a r r 1 = [4, 4, 4 ] 5 Arrays. sort ( arr2 ); / / a r r 2 = [4, 5, 6 ] 6 List l = Arrays. aslist ( arr2 ); 7 int indeks = Arrays. binarysearch ( arr2, 5) ; / / i n d e x = 2

Klasa Vector Implementuje tablic dynamiczn Niektóre metody zdeniowane w klasie Vector: addelement(element) - dodaje obiekt element do wektora capacity() - zwraca pojemno± wektora firstelement() - zwraca pierwszy element wektora lastelement() - zwraca ostatni element wektora contains() - zwraca true, je±li element jest w wektorze Przykªady zastosowania: 1 Vector < Integer > v = new Vector < Integer >(2) ; / / t w o r z y m y w e k t o r d l u g o s c i 2 2 v. addelement (1) ; 3 v. addelement (8) ; 4 v. addelement (12) ; 5 int a = v. capacity () ; / / a = 4, p r z y d o d a n i u n o w e g o e l e m e n t u d l u g o s c w e k t o r a z w i e k s z y l a s i e d w u k r o t n i e 6 int b = v. firstelement () ; / / b = 1 7 int c = v. lastelement () ; / / c = 1 2

Klasa Stack Podklasa klasy Vector Implementuje Last In First Out Deklaracja klasy: class Stack<E> Metody zdeniowane w klasie Stack: empty() peek() pop() push(element) search(element) Przykªady zastosowania: 1 Stack < Integer > st = new Stack < Integer >() ; 2 st. push (42) ; 3 st. push (7) ; 4 Integer a = st. pop () ; 5 Integer b = st. peek () ;

Cz ± praktyczna Cz ± praktyczna

Sk d wzi Jav do uruchomienia programu wystarczy Java Runtime Environment (JRE) kompilator (jak i JRE) znajduje si w Java SE Development Kit (JDK) http://java.sun.com/javase/downloads/index.jsp prawdopodobnie trzeba do zmiennej PATH doda.../jdk6/bin

Kompilacja javac Klasa.java Powstanie plik Klasa.class Kompilator tªumaczy program na kod po±redni (bytecode) Podatne na reverse engineering - warto u»y obfuskatora je±li to problem

Uruchamianie java Klasa Uruchamiamy plik Klasa.class java -jar Klasa.jar - w przypadku pliku jar

Przykªadowy program omówienie i uruchomienie Program znajduje si w katalogu src/ Kompilujemy z poziomu tego katalogu, który zawiera katalog pl javac pl/egarden/programnaprezentacje.java Uruchamiamy tym poleceniem: java pl.egarden.programnaprezentacje

Hello World czyli zrób pan(i) program w Javie Prosimy o wykonanie nast puj cego zadania: Otwórz notatnik lub inny prosty edytor plików Wpisz w nim poni»szy kod Zapisz jako plik HelloWorld.java Skompiluj poleceniem javac HelloWorld.java Uruchom program poleceniem java HelloWorld 1 class HelloWorld { 2 public static void main ( String args []) { 3 System. out. println (" Hello world "); 4 } 5 } ;

Hello World czyli zrób pan(i) program w Javie Prosimy o wykonanie nast puj cego zadania: Otwórz notatnik lub inny prosty edytor plików Wpisz w nim poni»szy kod Zapisz jako plik HelloWorld.java Skompiluj poleceniem javac HelloWorld.java Uruchom program poleceniem java HelloWorld 1 class HelloWorld { 2 public static void main ( String args []) { 3 System. out. println (" Hello world "); 4 } 5 } ; 1 Wersja dla ambitnych ;) 2 ++++++++++[ >+++++++ >++++++++++ >+++ >+ < < < < -] >++. >+.+++++++ 3..+++. >++. < <+++++++++++++++. >.+++. - - - - - -. - - - - - - - -. >+. >.

Koniec Dzi kujemy za uwag