Hi all
Elmondaná nekem valaki hogy ez miért működhet?
public class test {
private String asdf;
private int qwe;
public test(String s,int i){
asdf=s;
qwe=i;
}
@Override
public boolean equals(Object arg0){
test o = (test)arg0;
if (this.asdf.equals(o.asdf)) return true;
else return false;
}
public static void main(String[] args){
test q1 = new test("asdf",4);
test q2 = new test("asdf",4);
System.out.println(q1.equals(q2));
}
}
A pirossal kiemelt sor erdekes , hogy az miert nem dob hibat mikor közvetlen hivatkozas van egy privát adattagra ( o.asdf )
Köszi a válaszokat
- 3959 megtekintés
Hozzászólások
mikor közvetlen hivatkozas van egy privát adattagra
A private-et osztaly szinten kell erteni, nem peldany szinten. Az osztaly peldanyai elerik egymas private tagjait, azok csak mas osztalyok peldanyai elol vannak elrejtve!
----------------------
"ONE OF THESE DAYS I'M GOING TO CUT YOU INTO LITTLE PIECES!!!$E$%#$#%^*^"
- A hozzászóláshoz be kell jelentkezni
Ohhh köszi!
Gondolom azért nem fogtam ezt fel eddig mert tökre nem logikus.
- A hozzászóláshoz be kell jelentkezni
De, logikus, ha belegondolsz, miert akarhatjuk egyaltalan korlatozni mindenfele allapot lathatosagat. Gondolom, valami security-szeru dolog van a fejedben, pedig nem errol van szo.
Egyszeruen igy garantaljuk, hogy csak olyan kod ferjen hozza, ami eleg kozel van, mert az jo esellyel meg tudhatja, hogy mire jo az a mezo, mire kell vigyazni, satobbi. Programozasi, es nem runtime hibakat szeretnenk kivedeni, forditasi idoben. Az equals tehat siman hozzaferhet a masik asdf-hez is, mert ugyis tudja, mit kell vele csinalni.
Erthetobb igy?
- A hozzászóláshoz be kell jelentkezni
http://java.sun.com/docs/books/tutorial/java/javaOO/accesscontrol.html
röviden ott az a kis tábla
- A hozzászóláshoz be kell jelentkezni