1 / 31

Dobré ráno s jazykom Java UINF/PAZ1c

Dobré ráno s jazykom Java UINF/PAZ1c. Róbert Novotný 21. septembra 2006 9.00, Live from P12. Formality a byrokracie. Teoretické cvičenie štvrtok, 9.00, P12 prednáškové zameranie Praktické cvičenia piatok, 7.00, P2/P3 piatok, 9.00, P2/P3. Sylabus a požiadavky na zápočet. Sylabus:

tahlia
Download Presentation

Dobré ráno s jazykom Java UINF/PAZ1c

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Dobré ráno s jazykom JavaUINF/PAZ1c Róbert Novotný 21. septembra 2006 9.00, Live from P12

  2. Formality a byrokracie • Teoretické cvičenie • štvrtok, 9.00, P12 • prednáškové zameranie • Praktické cvičenia • piatok, 7.00, P2/P3 • piatok, 9.00, P2/P3

  3. Sylabus a požiadavky na zápočet • Sylabus: • Objektovo orientované programovanie • Jeho použitie v Jave • oproti Popoludniam s jazykom Java viac dôraz na jazyk a princípy OOP • Požiadavky: • Účasť na praktických cvičeniach • Domáce úlohy • Záverečný projekt

  4. Java • Java • výslovnosť • džova (Gosling a iní zakladatelia) • džava ,,To sú tí Američania, čo čítajú body ako báádíí" • java (Poliaci a Rusi;-)) • objektovo orientovaný programovací jazyk • základný softvér týkajúci sa Javy

  5. História • 1990: Sun prorokuje konvergenciu spotrebiteľských zariadení a počítačov • 1991: James Gosling plodí programovací jazyk Oak • 1994: HotJava – prvý webový prehliadač s dynamickým obsahom ,,Točila sa tam molekula" • 1995: Oak premenovaný na Javu • Netscape ohlasuje podporu vo svojom prehliadači • Microsoft tiež (a neskôr si vyrába vlastnú Javu)

  6. História • 1996: Vypustený Java Development Kit 1.0 ,,svižný ako dvestoročná korytnačka po porážke" • 1998: JDK 1.1 – kopa nových vlastností • 1997: JDK 1.2 alias Java 2 Standard Edition 1.2 2000: J2SE 1.3, 2002: J2SE 1.4 • 2004: JDK 1.5 alias Java 2 Standard Edition 1.5 alias Java 5 alias Java Standard Edition 5 alias Tiger ,,Chápete, nie?" • o chvíľu vo vašich kinách: Java SE 6 • všetko pod palcom Sun Microsystems.

  7. Výhody Javy • WORA: write once, run anywhere (Napíš raz, spusti hocikde) • kódenie na Windowse • nasadenie na Solaris • platformová nezávislosť • Windows • Linux • mobil • sonda Mars Spirit • tony kvalitných knižníc a nástrojov • väčšina zadarmo

  8. Výhody a nevýhody Javy • malé spustiteľné súbory ,,Heh. Až na to osemmegové JRE" • žiadne smerníky • syntax prebratá z Ccka ,,To je výhoda?"

  9. Výhody a nevýhody Javy • užívateľ sa často stretáva s tými najhoršími stránkami Javy • applety: hrozné, pomalé, nepoužiteľné • applety tvorili veľmi malý podiel programov v Jave • historicky na odchode • bežné aplikácie: hrozné, pomalé, nepoužiteľné • situácia sa zo dňa na deň zlepšuje ,,Porovnaj Together a Eclipse" • pozri JAlbum, či Azureus

  10. Prečo by som mal ovládať Javu • komerčné spoločnosti => množstvo pracovných ponúk • Java je v súčasnosti na čele medzi požiadavkami (plece pri pleci s C++) • Ness, Siemens, VSL, CAI • veľká perspektíva 1. PHP: 1,152* 2. C# : 5,111 3. AJAX: 1,106 4. JavaScript: 4,406 5. Perl: 4,810 6. C: 6,164 7. Ruby, Ruby on Rails: 210 a 54 8. Java: 14,408 9. Python: 811 10. Visual Basic .Net: 2,090

  11. hello.pas program hello; begin writeln(‘Hello World’); end; HelloWorld.java public class HelloWorld { public static void main(String[] args) { System.out.println(“Hello World”); } } Prvý program • Java je case-sensitive: rozlišujú sa veľké a malé písmená. • pokracuj a POKRACUJ sú dve rôzne premenné • Zdrojové súbory majú príponu .java. • V jednom súbore typicky jedna trieda. • Trieda HelloWorld v súbore HelloWorld.java (aj na Windowse). Nie HELLOWORLD.JAVA, nie hello.jav. Inak trhanie vlasov...

  12. hello.pas program hello; begin writeln(‘Hello World’); end; HelloWorld.java public class HelloWorld { public static void main(String[] args) { System.out.println(“Hello World”); } } Prvý program • public class znamená deklaráciu triedy. Všetok kód musí prináležať nejakej triede. • Žiadne voľne pohodené funkcie a procedúry. • public static void main(String[] args) je metóda, ktorá sa zavolá pri spustení triedy z príkazového riadku • ,,Dôvod, prečo sa Java neučí v prvom semestri.“ • krvavé detaily neskôr....

  13. hello.pas program hello; begin writeln(‘Hello World’); end; HelloWorld.java public class HelloWorld { public static void main(String[] args) { System.out.println(“Hello World”); } } Prvý program • Kučeravé zátvorky sú približnou analógiou begin a end • Ohraničujú blok príkazov • ,,Chlpaté zátvorky“ (M. Schmotzer) • Príkazy v zátvorkách sú odsadené. • ,,Štábna kultúra musí byť“ (Herout: Učebnice jazyka C) • Riadky sú ukončené bodkočiarkou. (Spomni Pascal)

  14. hello.pas program hello; begin writeln(‘Hello World’); end; HelloWorld.java public class HelloWorld { public static void main(String[] args) { System.out.println(“Hello World”); } } Prvý program • Výpis textu na obrazovku cez System.out.println(); • println() je metóda triedy out, ktorá je vnútornou triedou triedy System. • žiadne voľne pohodené funkcie a procedúry! • ,,O tom potom“ • Reťazce v Jave písané do dvojitých úvodzoviek • "Ja som Fero Taraba"

  15. Chaos.java public class chaos{public static void main(String[] args){System.out.println(“Hello”);for(int i=0;i<args.length;i++){System.out.println(args[i]);}}} Štábna kultúra Nadhera.java public class Nadhera { public static void main(String[] args) { System.out.println(“Hello”); for(int i = 0; i < args.length;i++) { System.out.println(args[i]); } } } Dodržiavame mnoho konvencií: odsadzujeme, kučeravé zátvorky na správne miesta, veľkosť písmen v názvoch premenných ,,Ešte horšie, než na cvičeniach S. Krajčiho“

  16. Pascal integer (celé čísla) -32768 - 32767 real (reálne čísla) string (reťazce) boolean (pravd. hod.) Java int -2147483648 - 2147483647 float String (veľké S!) boolean Dátové typy Java je silne typovaný jazyk. Premenná má názov a typ. (Spomni Pascal) ,,Nech javáci trpia pri pohľade na “1 opica“ + 1 = "2 opica“ v PHP.“ Existujú aj ďalšie, ale o tom potom.

  17. HelloWorld.java public class HelloWorld { public static void main(String[] args) { int i = 0; boolean b = true; boolean c = false; // toto je komentár float f = 3.14f; // f znamená, že konštanta je reálne číslo typu float String s = "Mám vznášadlo plné úhorov"; // String s veľkým S! } } Používanie premenných

  18. if uplatok< 10000 then begin writeln('Nedam zapocet'); end else begin writeln('Dajte index'); end; Podmienky (nie na zápočet) if (uplatok < 10000) { System.out.println("Nedám"); } else { System.out.println("Dajte index"); } Zátvorky okolo podmienky sú povinné!

  19. if (vek > 18) and (vek <=24) then begin writeln('Pravdepodobne vysokoskolak'); end; Horšie podmienky (ešte stále nie na zápočet) if (vek > 18 && vek <=24) { System.out.println("Pravdepodobne vysokoskolak"); } Logické spojky: logické a: && logické alebo: ||(,,dve pajpy") negácia: ! if(!jeStudent) Operátory: menšie: < väčšie: > rovnosť: == nerovnosť: !=

  20. kučeravé zátvorky píšeme aj v prípade jediného príkazu (štábna kultúra!) porovnanie dvoch premenných cez dvojité rovná sa. Pascal: i := 0, ale if a = b then... Java: int a = 0, ale if (a == b) ... nerovnosť dvoch premenných: Pascal: if a <> b then... Java: if (a != b) ... Horšie podmienky (ešte stále nie na zápočet) if (vek == 15) { System.out.println("Vydajte mu obciansky"); }

  21. Dva druhy porovnaní ,,Abandon sanity, ye who enter" int pocetDeti = 25; if (pocetDeti == 0)... String meno = "Fero"; if (meno.equals("Taraba")) • Primitívy (int, float, boolean...) porovnávame cez == Pomôcka: primitívy sa začínajú malým písmenom • Objekty (String) porovnávame cez equals() Pomôcka: typ sa začína veľkým písmenom Zmätok v použití spôsobuje trhanie vlasov! • == na objektoch funguje, ale nie tak ako zvyčajne očakávame • equals() na primitívoch nefunguje

  22. while i > 0 do begin i = i - 1; end; Cykly(sti) ,,Fór fór bol to cyklus for, zacyklí sa každý tvor" (Tanečnodlažobná skupina Ctrl+Alt+Del) repeat i = i - 1; until i <= 0; while (i > 0) { i = i – 1; } Zátvorky okolo podmienky sú povinné! /* repeat v Jave neexistuje! */ • Spomni Pascal: • podmienka sa overuje pred začiatkom každej iterácie • telo cyklu sa nemusí vykonať • repeat nemá v Jave kamaráta • repeat vieme transformovať na while ,,pozorný čitateľ ľahko ukáže..."

  23. var i:integer; {…} for i:=1 to 5 do begin {…} end; Cykly(sti) int i; for (i = 1; i <= 5; i++) { //… } • for cyklus je komplikovanejší, ale zato flexibilnejší • ,,vykrádačka z Cčka" • for (inicializácia; podmienka; príkazy po iterácii) • inicializácia: príkazy, ktoré sa vykonajú pred spustením cyklu • podmienka: booleovská podmienka, overuje sa pred iteráciou • príkazy po iterácii: vykonané po skončení iterácie

  24. Cykly(sti) int i; for (i = 1; i <= 100; i = i + 1){ System.out.println("Nebudem pozerať telenovely"); } To isté ako int i = 1; while (i <= 100) { System.out.println("Nebudem pozerať telenovely"); i = i + 1; }

  25. Cykly(sti) int i; for (i = 1; i <= 5; i = i + 1){ System.out.println(i); } Praví programátori píšu: Čísla od 1 po 5 for (int i = 1; i <= 5; i = i + 1){ System.out.println(i); } Javáci zvyčajne indexujú od nuly Čísla od 0 po 4 for (int i = 0; i < 5; i++){ System.out.println(i); } i = i + 1

  26. var p:array[1..10] of integer; {…} p[1] := 25; p[2] := 12; Polia int[] p; //deklarácia p = new int[10]; //priradenie {…} p[0] = 25; p[1] = 12; • polia v Jave sú zásadne indexované od nuly. • deklaráciu a priradenie možno spojiť • int[] p= new int[10]; • máme 10prvkové pole. Prvky majú indexy od 0 po 9. • priradenie do p[10] je chyba! Hrozí plač a škrípanie zubami! (,,Chyba plus jedna")

  27. Polia float[] priemery; //deklarácia priemery[0] = 25.0f; //chyba, pole nebolo inicializované! Inicializácia desaťprvkového poľa boolean[] hodnoty = new boolean[2]; hodnoty[0] = true; hodnoty[1] = false; Inicializácia a naplnenie dvojprvkového poľa pre pokročilých boolean[] hodnoty = new boolean[] {true, false};

  28. Príklad Obsadenie.java public class Obsadenie { public static main(String[] args) { String[] s = new String[] {"Ganjalf", "Aragorn", "Gimli", "Legolas", "Kirk"}; for (int i = 0; i < s.length; i++) { System.out.print("Hra: "); System.out.println(s[i]); } } }

  29. Ako spustím zázračný program v Pascale • Spomni Pascal: • F9 kompiluje a zároveň spúšťa. Všetko sa deje na pozadí F9

  30. Ako spustím zázračný program v Jave • Pravý programátor používa príkazový riadok a notepad/vi. • Kompilácia • javac HelloWorld.java • Spustenie • java HelloWorld Hello World! HelloWorld.java public class... HelloWorld.class 010011001011 javac java

  31. Ako spustím zázračný program v Jave • Prostý ľud používa integrované vývojové prostredie • Eclipse od IBM (zadarmo) • NetBeans od Sunu (zadarmo) ,,začínali ako softvérový projekt na MFF UK v Prahe" • IntelliJ IDEA • najlepšie • za ťažké peniaze

More Related