Kennen Sie Jungs, wie kann ich ein Objekt nur innerhalb einer speziellen Klasse veränderbar machen? In diesem Beispiel möchte ich das Objekt PrivateObject nur innerhalb der Box-Klasse änderbar (inkrementierbar), nirgendwo anders. Gibt es einen Weg, dies zu erreichen?java -ähnlicher Freund Klassenmechanismus
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!
In C++, würde ich alle privaten PrivateObject Eigenschaften und Methoden machen, und die die Box-Klasse als Freund für die PrivateObject Klasse deklarieren.
verwandte Frage http://stackoverflow.com/questions/182278/is-there-a-way-to-simulate-the-c-friend-concept-in-java –