170 likes | 257 Views
Tömbök ismétlés Osztályok Java-ban Garbage collection. 4 . gyakorlat. Tömbök ismétlés Létrehozás Inicializálás Többdimenziós tömbök. Osztályok. Amikor saját osztályt írunk, annak (általában) vannak adattagjai és/vagy metódusai. Adattagok megadása
E N D
Tömbök ismétlésOsztályok Java-ban Garbage collection 4. gyakorlat
Tömbök ismétlés Létrehozás Inicializálás Többdimenziós tömbök
Osztályok • Amikor saját osztályt írunk, annak (általában) vannak adattagjai és/vagy metódusai. • Adattagok megadása • [láthatóság][static][final][transient][volatile] típusváltozóNév • Metódusok megadása • [láthatóság] [static] [abstract] [final] [native] [synchronized] visszatérésiTípusmetódusNév ([paraméterek]) [throws kivételLista]
Osztályok (folyt.) • Példa public class Pont { // Adattagok private int x; private int y; public double tavolsag(Pont p) { double tav; // távolságot számoló kód… return tav; } }
Osztályok (folyt.) • Különleges metódusok • Konstruktor • Neve meg kell hogy egyezzen az osztály nevével • Visszatérési típusa nem lehet • Új objektum létrehozásakor hívódik meg. Általában az adattagok inicializálásáért felelős kódot helyezzük a törzsébe. • A paraméter nélküli konstruktort default konstruktornak nevezzük, ha van legalább egy paramétere, akkor paraméteres konstruktornak.
Osztályok (folyt.) • Példa: public Pont() { x = 0; y = 0; } public Pont(int xKoord, int yKoord) { x = xKoord; y = yKoord; }
Osztályok (folyt.) • Getter/Setter metódusok • Az adattagok későbbi (konstruálás utáni) beállítására (setter) illetve lekérdezésére (getter) szolgálnak. • Ezen metódusok elnevezésére vonatkozó szabályok: • Getter: getAdattagNeve • Setter: setAdattagNeve
Osztályok (folyt.) • Példa public int getX() { return x; } public void setX(int ujX) { x = ujX; }
Osztályok (folyt.) • Statikus mezők és metódusok • static kulcsszóval • Mezők esetén azt jelenti, hogy nem rendelkezik minden objektum külön példánnyal belőle, hanem csak egy példányban van jelen a memóriában, és az összes objektum ezt használja közösen. Ha nem hozunk létre egyetlen objektumot sem, a statikus mező akkor is létezik. • Elérése: OsztályNév.statikusMezőNév
Osztályok (folyt.) • Példa public class Ember { public static final boolean FERFI= true; } … Ember.FERFI
Osztályok (folyt.) • Konstanst úgy hozhatunk létre, hogy egy statikus mezőt a final módosítóval is ellátunk. • Az ilyen mezők kezdőértéke nem változtatható meg, nevüket csupa nagy betűvel kell írni, szóhatáron aláhúzásjellel elválasztva. • Példa public static final boolean FERFI= true;
Osztályok (folyt.) • Ha egy metódust teszünk statikussá, akkor az meghívható lesz objektumpéldány létrehozása nélkül. • Statikus metódusból csak a statikus mezőket lehet elérni. • Elérése: OsztályNév.statikusMetódusNév
Osztályok (folyt.) • Példa public class Ember { public static void kiirEmber(String nev, int szuletett) { System.out.print(“Az ember neve “ + nev); System.out.println(“, szuletesi datum: “ + szuletett); } } … Ember.kiirEmber(“Hobi Zsolti”, 19870615);
Osztályok (folyt.) • A this kulcsszó • Hivatkozás az aktuális objektumra • Mikor használjuk? Például, ha egy metódus formális paraméterének neve megegyezik egy attribútum nevével, akkor kénytelenek vagyunk használni • Például: public Pont(int x, int y) { this.x = x; this.y = y; }
Osztályok (folyt.) • A null kulcsszó • Azt jelöli, hogy az adott referencia nincs beállítva semmilyen objektumra. • Segítségével jelezhetjük a Java beépített szemétgyűjtőjének (Garbage Collector – gc), hogy már nem akarunk hivatkozni az objektumra, fel lehet szabadítani a számára foglalt memóriát. • Példa Pont p1 = new Pont(6, 15); ... p1 = null;
Garbage collection • Nem használt objektumokat töröljük a memóriából • Nem tudni pontosan mikor hívódik, ha van még hely a memóriában, akkor nem lassítja feleslegesen a programot • Manuálisan is hívható: System.gc();
Feladatok • Példa: Ember feladat megírása együtt • Plusz pontos feladatok → feladatok.txt