JAVA feladatom megerteseben segitenel? Elmeletre lenne szuksegem. (OOP)
Nem veletlenul irok ide, mivel eddig is nagyon jo valaszokat kaptam mikor segitsegre szorultam.
Tanarok, hallgatok, szakik, elore is koszonom!
2 egyszeru OOP programom.
[link] (ebben van a main)
A 2 kerdesem a kovetkezok lennenek.
1. Mi az a this kulcsszo? (Csak, mert anelkul is lefut)
2. Elmagyaraznatok ezt a ,set'teles ,get'telest?
Talan a masodik kerdesem lenne igazabol a mervado, mert ugy latom a tovabbiakban, hogy az meg nagyon sokszor visszakoszon.
Nyugodtan mehet konnyed stilusban is a magyarazas, ugy jobban ertheto szamomra.
Kossz szepen elore is!
T.
Millió helyen le van írva mind a kettő.
(This nélkül nem lesz túl sikeres az első kódrészlet.)
this -> az adott objektumra utal.
Pl.
public void setName(String name) {
this.name = name;
}
Fontos jeleznünk, hogy az osztály name változója veszi fel a zárójelek között megadott name értékét.
A setter függvények beállítják az osztály atributumainak értékét.
A getter függvények pedig visszatérítik.
Hogy miért van ez:
pl.
A name atributum privát, az azt jelenti, hogy csak az osztály belsejéből lehet lekérni.
A main függvényből nem állíthatjuk be a name értékét pl. így:
MyClass a = new MyClass();
a.name = "Valami"
hanem:
a.setName("Valami");
Az OOP egyik fő mondanivalója, hogy az atributumok azok belső információk, csak metódusokkal kérjük le és állítjuk be az értékét.
#2 voltam:
a set függvények beállítják az atributumok értékét
a get függvények segítségével lekérdezhetjük az atributumok értékét.
Elso: Tudom, hogy millio meg 1 helyen le vannak irva, de mint irtam, a magyarazas az ami a legfontosabb szamomra.👊
Masodik: Koszonom, sokat segitettel, a napokban meg ranezek erre a kerdesemre, ha hozzatennel barmit. Kossz szepen megegyszer! 🙏🙏
"Mi az a this kulcsszo?"
Azt az objektumot jelöli, aminek a metódusát hívjuk vagy adattagját akarjuk elérni. A this konkrétan az az objektum, amivel meg lett hívva az adott metódus. Ugyanis az osztály kódja "univerzális", az osztály bármelyik példányára működik, de meg kell mondani neki, hogy épp melyikkel dolgozzon. Ha pl. egy osztály 20 különböző objektumának meghívod ugyanazt a metódusát, akkor ugyanaz az egy kód fog lefutni 20-szor, csak mindig más adatokon fog dolgozni, viszont meg kell neki adni hivatkozásként, mikor melyik objektumon dolgozzon. A hívó oldalon ez megvan, a fordító tudja, és ott átadódik egy this paraméterként a metódusnak, amit a hívott (osztály) oldalon a metódus kódjában fel lehet használni.
az objektumon belülre mutat.
vegyünk egy egyszerű példát:
public class Alma{
private int darab;
//beállítjuk az alma adattagját
pulic void setAlma(int darab){
this.darab = darab;
}
//amint látod két darab változó van és nem tudná eldönteni hogy melyikre akarsz hivatkozni a this. kulcsszó rámutat hogy ebben az objektumba lévő darabból van szó és ebbe szeretném a paraméteren keresztül kapott darabot belerakni.
ha nem darab néven adnám át hanem _darab akkor a this. szó elhanyagolható lenne és darab = _darab is lehetne
pulic void setAlma(int darab){
this.darab = darab;
}
Egyébként itt is a hívó oldalon van a lényeg, pl.:
egyikAlma.setAlma(2);
Ilyenkor a this az egyikAlma objektumra fog mutatni. Mindig arra, amire a metódust hívtuk.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!