1 / 335

Java – start!

Java – start!. Minden jog fenntartva. A szerző előzetes írásbeli engedélye nélkül jelen anyagot vagy annak részleteit más nyelvre lefordítani, reprodukálni és közölni tilos!

eamon
Download Presentation

Java – start!

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. Java – start! Minden jog fenntartva. A szerző előzetes írásbeli engedélye nélkül jelen anyagot vagy annak részleteit más nyelvre lefordítani, reprodukálni és közölni tilos! Non-profit oktatási intézmények ingyenesen felhasználhatják; más-jellegű felhasználáshoz, így pl. tanfolyam-tartáshoz az XSys Kft. hozzájárulása szükséges. A Java a Sun Mictosystems, Inc. bejegyzett védjegye.

  2. 1.„Hello”

  3. „Hello!” • Írjuk ki a Hello! szöveget! // Hello.java public class Hello { public static void main(String[] args) { System.out.println("Hello!"); } }

  4. Megjegyzés Megjegyzés // 1.1 Hello.java public class Hello { public static void main(String[] args) { System.out.println("Hello!"); } } • A Java figyelmen kívül hagyja a sor // után következő részét.

  5. Osztály (class) Hello: publikus osztály // Hello.java public class Hello { public static void main(String[] args) { System.out.println("Hello!"); } } • Objektumorientált nyelvekben a programunkat osztályoknak (class) nevezett zárt egységekből építjük fel • publikus (mindenki által használható) osztály

  6. Jellegzetességek // Hello.java public class Hello { public static void main(String[] args) { System.out.println("Hello!"); } } jellegzetességek • A nevet követően,kapcsos zárójelek között soroljuk fel az osztályhoz tartozó elemeket, melyeket az osztály jellegzetességeinek (feature) nevezünk.

  7. „Hello” osztály definíciója

  8. public static void main(String[] args) main public class Hello {// Hello.java public static void main(String[] args) { System.out.println("Hello!"); } } • Ha egy pontosan ilyen (main nevű, „publikus és statikus”, stb.) jellegzetességet megadunk, akkor a Java el tudja indítani, futtatni tudja az osztályt. • Az osztály futtatása:a kapcsoszárójelek közötti programrész végrehajtása.

  9. Kiírás // Hello.java public class Hello { public static void main(String[] args) { System.out.println("Hello!"); } } Kiírás a konzolra • A zárójelek között számérték vagy egy egyszerű kifejezés is szerepelhet

  10. Kifejezés kiírása • Írjuk ki a kifejezés értékét! public class Kiírás { public static void main(String[] args) { System.out.println( 2.8/3*(1+3) ); } }

  11. Szövegek összefűzése • Több szöveget a + művelettel fűzhetünk össze, így a megjelenő értéket magyarázószöveggel is ki tudjuk egészíteni. public class Kiírás { public static void main(String[] args) { System.out.println("2.8/3*(1+3) értéke: "+ (2.8/3*(1+3))+"."); } } összefűzés összefűzés

  12. JDK • Java nyelvű programok készítéséhez (fordításhoz) szükséges egy fejlesztői környezet. • JDK: Java Development Kit • A Java nyelvet kifejlesztő SUN által ingyen rendelkezésre bocsátott„Java fejlesztői csomag” • www.javasoft.com címről letölthető • Java programozás: • JDK: minimális készlet • Integrált fejlesztői környezet (IDE: Integrated Development Environment)

  13. JDK telepítése • A telepítés részben bizonyos állományok („fájlok”) elhelyezését jelenti. • Fordító, futtató és kiegészítő programokelérhetővé tétele. (PATH). • A Java programok környezetét jelentő állományok helye. CLASSPATH elnevezésű környezeti változó: • osztályokat tartalmazó könyvtárakat, • több osztályt/könyvtárat tömörítetten tároló jar v. zip állományok. • ACLASSPATH értékét ki kell egészítenünk azzal a könyvtárral, amelybe elhelyezzük a programjainkat.(esetleg az aktuális könyvtárral)

  14. Fordítás és futtatás • Hello.javaszöveges állomány. • Állomány neve = a publikus osztály neve • .java kiterjesztés! • Fordítás: Java compiler • javac Hello.java • eredmény: Hello.class • Futtatás: • java Hello • (Hello! szöveg)

  15. Fordítás és futtatás • class állomány: bájtkód forma • java paranccsal indítható • Java virtuális gép (JVM: Java Virtual Machine). • Gépfüggetlen: más gépen is futtatható (hálózat)

  16. Megjegyzések • A megjegyzéseket a fordítóprogram figyelmen kívül hagyja. • Megjegyzés: ahova kiegészítő szóközöket is írhatunk. • A Java három fajta megjegyzést ismer. • // után a sor végéig tartó rész, • /* és */ között: több soros(nem ágyazhatók egymásba), • /** és */ között (speciális változat):dokumentációs megjegyzés valamely definiált elem (pl. osztály vagy jellegzetesség) előtt. • javadoc program: html dokumentáció. (szabványos környezetdokumentációja is így készült)

  17. Azonosító • Azonosító: • programelem elnevezése • betűvel kezdődik és betűvel vagy számjeggyel folytatódik • A $ és az _ jelek is betűnek számítanak ($ jel a Java céljaira) • Unicode szabvány alapján a nemzeti karakterek (pl. á, é, stb.) • kis- és a nagybetűk különbözők • A Java nyelv készítőinek ajánlása: • osztályok elnevezését nagybetűvelkezdjük, • jellegzetességek nevét kisbetűvelkezdjük • Több szavas elnevezés:pl. a születési dátum => születésiDátum

  18. Kulcsszavak • Kulcsszavak: csak a nyelv által meghatározott jelentésben használhatók (kis- és a nagybetűk!) abstract, boolean, break, byte, case, catch, char, class, const, continue, default, do, double, else, extends, final, finally, float, for, goto, if, implements, import, instanceof, int, interface, long, native, new, package, private, protected, public, return, short, static, super, switch, synchronize, this, throw, throws, transient, try, void, volatile, while

  19. Applet • Java különlegessége: www dokumentumokba Java nyelvű programokat illeszthetünk be • applet (kisalkalmazás): html-oldalakba ágyazható • intelligensebb megjelenítés és működés • A web-lapon az applet kap egy adott méretű grafikus területet, ahova rajzolni lehet.

  20. Applet beágyazása • HelloApplet.html <HTML><HEAD><TITLE>HelloApplet</TITLE></HEAD> <BODY> Kiírás: <applet code="HelloApplet.class" width=80 height=15></applet> </BODY> </HTML> • HelloApplet.class: elhelyezni a megfelelő könyvtárba. • A web-lap megtekintésekor a program automatikusan elindul. Helyettesítő szöveg futtatandó állomány grafikus terület applet-tag

  21. Szöveg kirajzolása appletből public class HelloApplet extends java.applet.Applet { public void paint(java.awt.Graphics g) { g.drawString("Hello!", 5, 12); } } • Más szerkezetűek • Rajzolás: paint • Szöveg kirajzolása: drawString

  22. appletviewer • applet indítása: • rá hivatkozó html oldal • Böngésző • appletviewer (JDK) • figyelmen kívül hagyja a html-lapon szereplő többi szöveget • több applet esetén mindegyiket külön ablakban jeleníti meg • Java alkalmazásból is lehetséges a grafikus megjelenítés • Appletből is kiírhatunk szöveget a konzolra • a szöveg megtekintéséhez a böngészőben be kell kapcsolnunk a Java konzol megjelenítését • általában diagnosztikai üzenetek

  23. Rajzolás appletből // width=200 height=100 public class RajzApplet extends java.applet.Applet { public void paint(java.awt.Graphics g) { g.setColor(java.awt.Color.blue); g.fillRect(10,20,180,60); g.setColor(java.awt.Color.red); g.fillOval(20,10,100,50); } }

  24. 2.Egyszerű számítás

  25. Egyszerű számítás • A téglalap adataiból számítsuk ki a kerületét és a területét! osztályrészfeladatai (funkciók) részfeladatok metódusok konstruktor tulajdonságok valós érték • saját • +publikus

  26. Osztály és objektum • Osztály: • típus, olyan keret, melyet konkrét adatokkal tölthetünk fel. • pl.: egy Téglalapnak van egy a és egy b tulajdonsága, illetve egy kerület és egy terület metódusa. • Konkrét Téglalap: a két oldalhosszúságnak konkrét értéke van, így a téglalap a kerület és a terület értékeit is meg tudja adni. • Objektum (vagy példány): a konkrét elem • Az osztály az objektumainak a típusa, azaz a lehetséges objektumok közös jellegzetességeit határozza meg.

  27. Téglalap • Konstrukció (létrehozás): • adott osztályú objektumkészítése (példánkban egy konkrét Téglalap felvétele) • Megadása: egy különleges metódus, a konstruktor (constructor) segítségével: az objektumot milyen értékek (esetleg objektumok) alapján és milyen módon készíthetjük el.(a jel arra utal, hogy az objektumot a zárójelek között felsorolt paraméterekből hozzuk létre.) • Konstruktor esetén a + jel azt jelenti, hogy a „külvilág számára” engedélyezzük az objektum létrehozását.

  28. tulajdonságok konstrukció értékadás metódusok visszatérési érték

  29. Téglalap public class Téglalap { private double a; private double b; public Téglalap(double a_, double b_) {a=a_;b=b_;} public double kerület() { return 2*(a+b); } public double terület() { return a*b; } }

  30. Használat public class Téglalap { private double a; private double b; public Téglalap(double a_, double b_) { a=a_; b=b_; } public double kerület() { return 2*(a+b); } public double terület() { return a*b; } public static void main(String[ ] args) { Téglalap t=new Téglalap(10,20); System.out.println("A téglalap kerülete: "+t.kerület()+ ", területe: "+t.terület()+"."); } }

  31. Téglalap t=new Téglalap(10,20); t.kerület() • objektum jellegzetessége: . operátor

  32. Változó definíciója • típus név; • típus név = kezdőérték; • Több, azonos típusú változó • double a,b; • double x=1,y,z=3*2.54;

  33. Változó • Lokális változó v. paraméter • lokális változó: definiálatlan kezdőértékű • Fordítási hiba: double x; return x; • Jellegzetességként : attribútum, mező, vagy tagváltozó. • Alapérték: • számok esetén 0, • logikai változó esetén false, • karakteres változó esetén a null-karakter ('\0' „semmilyen” karakter), • referencia esetén null (később)

  34. Jellegzetességek elérése • Osztály definícióján belül közvetlenül elérhetők,az objektum határain kívül a . operátort kell használnunk. • Osztály definícióján belül az aktuális objektumra a this kulcsszóval hivatkozhatunk • akkor is elérhetjük az objektum jellegzetességeit (pl. this.a), ha egy paraméter vagy egy lokális változó neve megegyezik az osztály egy jellegzetességének a nevével.

  35. 3.Tulajdonságok

  36. Komponensek • Adott módú („szabványos”) programozás • Java filozófiája • Nagyobb flexibilitást biztosít • Attribútumok helyett tulajdonságok (property)

  37. Komponensek (adott módú programozás) • Tulajdonságok Származtatott v. Alap tulajdonság x: double // csak lekérdezhető, de nem beállítható y: double< // lekérdezhető és beállítható z: double<< // csak beállítható, de nem lekérdezhető

  38. Lekérdező/beállító metódusok private double xx; // ha nem származtatott public double getXx() { return xx; } // ha lekérdezhető public void setXx(double xx_) { xx=xx_; } //ha beállítható public class Téglalap { private double a; private double b; public Téglalap(double a_, double b_) { a=a_; b=b_; } public double getKerület() { return 2*(a+b); } public double getTerület() { return a*b; } }

  39. public class Téglalap { private double a; public double getA() { return a; } public void setA(double a_) { a=a_; } private double b; public double getB() { return b; } public void setB(double b_) { b=b_; } public Téglalap(double a_, double b_){ a=a_;b=b_;} public double getKerület() { return 2*(a+b); } public double getTerület() { return a*b; } }

  40. Kipróbálás Téglalap t=new Téglalap(10,20); System.out.println(t.getA()+"x"+t.getB()+" téglalap"); System.out.println(" kerülete: "+t.getKerület()); System.out.println(" területe: "+t.getTerület());

  41. Számított tulajdonság ( értéke:Math.PI)

  42. public class Kör public class Kör { private double sugár; public double getSugár () { return sugár; } public void setSugár(double sugár_) { sugár=sugár_; } public Kör(double sugár_) { sugár=sugár_; } public double getKerület() { return 2*sugár*Math.PI; } public double getTerület() { return sugár*sugár*Math.PI; } public static void main(String[] args) { Kör k=new Kör(1); System.out.println(k.getSugár()+" egység sugarú kör"); System.out.println(" kerülete: "+k.getKerület()); System.out.println(" területe: "+k.getTerület()); } }

  43. Math PI: double E: double sin(x: double): double asin(x: double): double cos(x: double): double acos(x: double): double tan(x: double): double atan(x: double): double

  44. Math abs(a: int): int abs(x: double): double min(a: int, b: int): int max(a: int, b: int): int min(x: double, y: double): double max(x: double, y: double): double rint(x: double): double sqrt(x: double): double pow(x: double, a:double): double exp(a: double): double log(x: double): double random(): double

  45. Egy másodpercekben megadott időtartam alapján írjuk ki, hogy az hány óra, hány perc és hány másodperc! Időtartam: getÓra():int getPerc():int getMásodperc():int

  46. public class Időtartam private int óra; public int getÓra() { return óra; } private int perc; public int getPerc() { return perc; } private int másodperc; public int getMásodperc() { return másodperc; } public Időtartam(int összes) { óra=összes/(60*60); perc=összes/60%60; másodperc=összes%60; } • Egészosztás és maradékszámítás

  47. Időtartam ... public static void main(String[] args) { Időtartam t=new Időtartam(3823); System.out.println(t.getÓra()+" óra "+ t.getPerc()+" perc "+ t.getMásodperc()+"másodperc"); }

  48. Java elemi típusai

  49. Elemi típusok logikai típus booleanfalse vagy true1 egész-jellegű típusok byte-128..1271 char65536 féle2 short-32768..327672 int-2147483648..21474836474 long-9223372036854775808..9223372036854775807 8 valós típusok floatkb.  (1.410-45 .. 3.410+38)4 doublekb.  (4.910-324 .. 3.810+308)8

  50. Elemi típusok és a void • Gyakran használt típusok: • egész érték: int, esetleg long • kis ábrázolási tartomány: short, esetleg byte • byte: operációs rendszerrel kapcsolatos adatokfeldolgozása. • Valós értékek:double, esetleg float • Gépfüggetlentípusok • void: nem típus; a segítségével jelezzük, hogy egy metódus nem ad vissza értéket.

More Related