Kezdőoldal » Számítástechnika » Programozás » Az encapsulation elvbe beletar...

Az encapsulation elvbe beletartozik az is, hogy a class constructorjában egy setter-rel állítunk be a egy propertyt?

Figyelt kérdés

Java nyelv

PL.:


public class People {

private int height;

private String name;


public void setHeight(int height) {

this.height = height;

}


public void setName(String name) {

this.name = name;

}


// Constructor - itt a lényeg

public People(int height, String name) {

setHeight(height); // tehát itt nem ez: this.height = height;

setName(name);

}

}


Az egészre dob egy Warningot is, hogy vigyázz mert ez a metódus felülírható (setHeight)


Csak azért is vagyok kíváncsi, mert pl C# -ban:

public string Name { get; set; }

this.Name = name; // és itt ez pl metódussal történő változtatás lenne, hiszen meghívja a SETTERT



-----------------------------------------------------------------------------------------


A másik kérdésem, ha csinálnék egy SubClass-t pl: Boy néven és nem akarom pl a Nevet beállítani a Super Construktorral, akkor elfogadott az a tény hogy a SuperClassból egy settert hívok? (super.setName(name);)


public class Boy extends People {

public int strength;


public Boy(String name, int strength) {

super.setName(name); // emiatt nem akarok külön konstruktort a People classba és csupán csak meghívok egy settert

this.strength = strength;

}

}



2016. jún. 3. 11:12
 1/3 A kérdező kommentje:

Most nézem, hogy a 2. kérdésemnél lehetne használni

super.setName(name) helyett a this.setName(name) metódust is

2016. jún. 3. 15:03
 2/3 anonim ***** válasza:

Self-encapsulation-nek hívják, és szerintem beletartozik.


Más kérdés, hogy ezt mennyire tartják be, mert rengetegszer nem. (most ez arra vonatkozik, hogy ha csak egy helyen nincs betartva, akkor már az egész nem ér sokat, kivéve a setter/getter)

2016. jún. 3. 16:10
Hasznos számodra ez a válasz?
 3/3 anonim ***** válasza:
Még annyi, hogy ez tényleg akkor igazán hasznos, ha a setter/getter nem csak annyit csinál, amennyit szokott, hanem mondjuk van lazy-initialization, vagy ilyesmi.
2016. jún. 3. 16:12
Hasznos számodra ez a válasz?

További 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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!