Bạn có biết làm thế nào tôi có thể làm cho một đối tượng thay đổi chỉ trong lớp học đặc biệt? Trong ví dụ này tôi muốn đối tượng PrivateObject chỉ có thể thay đổi (gia tăng) bên trong lớp Box, không nơi nào khác. Có cách nào để đạt được điều này?java -like cơ chế lớp bạn bè
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!
Trong C++, tôi sẽ đặt tất cả thuộc tính PrivateObject thành phương thức riêng tư và khai báo lớp Box làm bạn cho lớp PrivateObject.
câu hỏi liên quan http://stackoverflow.com/questions/182278/is-there-a-way-to-simulate-the-c-friend-concept-in-java –