¿Sabes chicos cómo puedo hacer que un objeto se pueda cambiar solo dentro de una clase especial? En este ejemplo, quiero que el objeto PrivateObject sea solo modificable (incrementable) dentro de la clase Box, en ningún otro lugar. ¿Hay alguna manera de ganar esto?java -like friend class mechanism
public class Box {
private PrivateObject prv;
public void setPrivateObject(PrivateObject p){
prv = p;
}
public void changeValue(){
prv.increment();
}
}
public class PrivateObject {
private value;
public increment(){
value++;
}
}
PrivateObject priv = new PrivateObject();
Box box = new Box();
box.setPPrivateObject(priv);
box.changevalue();
priv.increment(); //i dont want it to be changable outside the Box class!
En C++, me gustaría hacer todas las propiedades y métodos PrivateObject privado y el declarar la clase Box como un amigo para la clase PrivateObject.
pregunta relacionada http://stackoverflow.com/questions/182278/is-there-a-way-to-simulate-the-c-friend-concept-in-java –