You are on page 1of 17

Osztályok

4. gyakorlat
Az osztály fogalma
 Az objektumok formai leírása, melyek azonos
tulajdonsággal és operációkkal rendelkeznek.
 Osztályból objektum készítését példányosításnak
nevezzük. Minden objektum pontosan egy
osztály példánya.
Adattagok - metódusok
 Általában minden osztály rendelkezik adattagokkal,
metódusokkal.
 A metódusok az adattagokon végeznek műveletet, ezért gyakori,
hogy a paraméterlistájuk üres.
 Addattag megadása:
[láthatóság][static][final][transient][volatile] típus változóNév;
 Metódus megadása:
[láthatóság] [static] [abstract] [final] [native] [synchronized]
visszatérésiTípus metódusNév ([paraméterek]) [throws
kivételLista]
Láthatóságok
 public – bárki használhatja a programon belül közvetlenül.
 private – csak az adott osztály saját metódusai férhetnek hozzá
(használhatják).
 protected – az adott osztály metódusain kívül a származtatott
osztály metódusai érhetik el.
Adattagok – metódusok - Példa
 class Muvelet{
//adattagok
private int x;
private int y;
private int eredmeny;
… //további kód
public int Osszead(){
eredmeny = x + y;
return eredmeny;
}
…//további kód
}
Konstruktor
 Különleges metódus.
 Neve meg kell hogy egyezzen az osztály nevével!
 Láthatósága public, de előfordulhat, hogy protected.
 Nem lehet visszatérési értéke!
 Objektum létrehozásakor hívódik meg.
 Feladata az inicializálás. (adattagok inicializálásért felelős kód ide helyezendő).
 Egy osztálynak lehet több konstruktora, ilyenkor paraméterekben kell
különbözniük!
 A paraméter nélküli konstruktort default konstruktornak nevezzük.
 Ha nincs az osztálynak konstruktora, akkor a fordító létrehoz egy default
konstruktort.
Konstruktor - Példa
 public Muvelet(){
x = 0;
y = 0;
}

public Muvelet( int xErtek, int yErtek ){


x = xErtek;
y = yErtek;
}
Objektum létrehozása
 Objektum referencia:
<OsztályNév> változóNév;

Pl: Muvelet muvelet;


 Objektum létrehozása:
A new kulcsszóval (operátorral) tudunk objektumot létrehozni
(mint a tömböknél, mivel a tömbök is objektumok).
new <Konstruktor>([paraméterek]);
A paraméterektől függ, hogy az osztály melyik konstruktora
hívódik meg.

Pl: muvelet = new Muvelet( 2, 3 );


Getter – Setter metódusok

 Adattagok beállítására (setter) és lekérdezésére (getter)


szolgálnak.
 Kívülről ezeken keresztül tudjuk változtatni vagy lekérdezni a
private adattagok értékét.
 Elnevezési szabályok:

Getter: getAdattagNeve
Setter: setAdattagNeve
Getter – Setter metódusok - Példa
 public int getX(){
return x;
}

public void setX( int ertek ){


x = ertek;
}
Metódusok, adattagok elérése
 Miután létrehoztuk az objektumunkat, a metódusait, adattagjait el
kell valahogy érnünk.
 Referencianév után ponttal (.) hivatkozhatunk az egyes
metódusokra.
 Pl:
Muvelet muvelet = new Muvelet( 2,3 );
int eredmeny = muvelet.Osszead();
Metódus túlterhelés ( overloading )
 Egy osztályon belül lehet több ugyanolyan nevű metódus is, ha a
paraméterlistájuk különbözik – ezt hívjuk túlterhelésnek
(overloading).
 A fordító a paraméterlista szerint tesz különbséget az azonos
nevű metódusok között.
 Pl:
static double osszeg( double x, double y ){
return x + y;
}
static double osszeg( int x, double y ){
return x + y;
}
Statikus adattagok, metódusok
 static kulcsszóval jelezzük, hogy a változó vagy metódus statikus.
 Objektum nélkül is léteznek, tehát nem kell ahhoz objektum,
hogy használni tudjuk őket.
 Nem rendelkezik minden objektum külön példánnyal belőlük,
csak egyetlen példányként vannak a memóriában, az összes
objektum ezt a példányt tudja elérni és használni.
 Elérése:
OsztályNév.statikusMezőNeve;
OsztályNév.statikusMetódusNeve([paraméterek]);
Statikus adattagok, metódusok
 Statikus metódusban nem használhatunk nem statikus
osztályváltozót (adattagot), mivel a statikus metódusok ( és
statikus változók ) objektum létrehozás nélkül is létrejönnek,
ellenben a nem statikus osztályváltozókkal.
 Statikus metódus csak statikus metódust hívhat.
Konstansok
 final kulcsszóval tudjuk jelezni, hogy egy változó konstans.
 Kezdő értéke nem változtatható meg.
 Elnevezési szabály: Csupa nagybetű, szóhatárnál aláhúzás.

 Pl: public static final FALSE = 0;


this
 Referencia, mely az aktuális objektumra mutat.
 this után ponttal (.) tudunk hivatkozni az aktuális objektum
adattagjaira és metódusaira.
 Akkor használatos, mikor egy metódus paramétereinek az
elnevezése megegyezik az osztály adattagjainak az elnevezésével.
Megkülönböztetésre szolgál.
 Pl:
public Muvelet( int x, int y ){
this.x = x;
this.y = y;
}
null
 Referenciánál jelezhetjük, hogy nincs beállítva neki objektum
(nem „mutat” semmire).
 Segítségével jelezhetjük a Garbage Collector-nak, hogy az adott
objektumra nincs szükségünk.

Muvelet muv = new Muvelet( 3, 4 );




muv = null;

You might also like