Знаете ли вы, ребята, как я могу сделать объект изменчивым только внутри специального класса? В этом примере я хочу, чтобы объект PrivateObject был только изменяемым (увеличивающимся) внутри класса Box, нигде больше. Есть ли способ получить это?java-like friend class механизм
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!
В C++, я бы все свойства и методы PrivateObject частного и объявить класс Box в качестве друга для класса PrivateObject.
связанный вопрос http://stackoverflow.com/questions/182278/is-there-a-way-to-simulate-the-c-friend-concept-in-java –