Java konstruktorában if feltétel helyes, vagy helytelen?
Van egy osztályom, amelynek 4 adattagja van, és ezek közül az egyik nem lehet negatív értékű. Azon gondolkoztam, hogy ezt a negatív dolgot hol ellenőrizzem le, a konstruktorban, vagy a setter metódusban. A program részlet:
public Point4D(double x, double y, double z, double t) {
super(x, y, z);
if(t >= 0){
this.t = t;
}
}
VAGY
public Point4D(double x, double y, double z, double t) {
super(x, y, z);
this.t = t;
és ehhez a setter metódusban van a feltétel:
public void setT(double t) {
if(t <= 0){
this.t = t;
}
}
A gond ott van, hogy ha a setterrel állítom be az értéket, tehát a második megoldás, akkor példányosításnál elfogadja a negatív értéket is.
Point4D point4d = new Point4D(1.1, 2.2, -3.3, -1);
Viszont nem tudom, hogy az első megoldás helyes-e és szabályos-e?
Elírás történt a setter-ben, így helyes:
public void setT(double t) {
if(t >= 0){
this.t = t;
}
}
Tervezésfüggő.
Lehet Contructba if-et tenni mindenféle probléma nélkül.
De ha setteren keresztül akarod meghívni, az is jó. De ha 1 függvényt csak 1x használsz azért felesleges létrehozni külön.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, 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!