29/01/11 1:19
f.l.c.r
Salve ragazzi,
ecco il codice, è molto semplice:
Mi spiegate perchè quando passo come argomento al metodo equals (quello che non overridda l'omonimo della calsse Object), posso accedere direttamente all'attributo dell' oggetto f che è stato etichettato come private?
In teoria non dovrei poterci accedere da un'altra classe.
Help me!
ecco il codice, è molto semplice:
package Polimorfismo2; public class File { private byte[] arrayOfByte; public File(){ arrayOfByte = new byte[0]; } public File(int dimensione){ arrayOfByte = new byte[dimensione]; } public File(byte[] bytes){ if(bytes==null){ arrayOfByte = new byte[0]; } else arrayOfByte = bytes; } public int getSize(){ return arrayOfByte.length; } public boolean isBiggerThan(){ if(this.getSize()>10) return true; else return false; } public boolean equals(File f){ boolean eq = false; if(this == f){ eq = true; } else if(f==null){ eq = false; } /*else if(this.getSize() == f.getSize()){ eq = true; }*/ // Come fa ad accedere se l'attributo di istanza è stato dichiarato come private else if(this.arrayOfByte.length != f.arrayOfByte.length) { eq = false; } else { for(int i=0;i<this.arrayOfByte.length;i++){ if(this.arrayOfByte[i]!=f.arrayOfByte[i]){ eq = false; break; } } } return eq; } public boolean equals(Object o){ if(this==o){ return true; } if(o instanceof File){ return this.equals((File)o); } else return false; } }
Mi spiegate perchè quando passo come argomento al metodo equals (quello che non overridda l'omonimo della calsse Object), posso accedere direttamente all'attributo dell' oggetto f che è stato etichettato come private?
In teoria non dovrei poterci accedere da un'altra classe.
Help me!
aaa