thể trùng lặp:
Absence of property syntax in JavaTiếp cận sở hữu tư nhân mà không nhận/đặt
Xem tình huống sau đây:
class Test extends Object {
private int x;
public getX() {return x;}
public setX(int _x) {x = _x;}
}
Như bạn thấy, không có gì đặc biệt. Tuy nhiên, tôi muốn biết nếu có thể giữ "private x" theo cách mà ai đó sử dụng lớp không cần sử dụng getX(), nói cách khác, nếu tôi có thể ánh xạ một số biến tự động được gọi là nhận và đặt.
Giống như "thuộc tính" ở Delphi. Nó sẽ ngăn chặn sự cần thiết của việc sử dụng setX() và getX() trong một biểu thức phức tạp và sẽ làm giảm sự hiểu biết của người đọc biểu thức.
Ví dụ: giả sử một số nhận dạng xx và yy khác có thể được sử dụng thay cho phương thức get và set. Xem:
import Test;
public static void main(String[] args) {
new Test() {
setX(10);
setY(20);
int z = getX() * getY() + (getY() * getY());
System.out.println("%d", z);
}
// would be like this
new Test() {
xx = 10;
yy = 20;
int z = xx * yy + (yy * yy); // xx would access the method getX() automatically
System.out.println("%d", z);
}
}
Tôi hy vọng các bạn hiểu ý tôi ở đây.
EDIT:
Rolly crepe! Đó là rất nhiều câu trả lời! Cảm ơn bạn rất nhiều tất cả mọi người.
Trong Java, bạn nên đặt biến riêng tư và truy cập bằng cách sử dụng get/set so với sử dụng trực tiếp. Bạn có thể thấy lợi thế với cách tiếp cận này nếu lớp con của bạn có cùng tên thuộc tính. – kosa
hoặc nếu bạn có lý do chính đáng để không, chỉ cần công khai nó – NimChimpsky
Hoặc bạn muốn nó là riêng tư, hoặc bạn không. Nếu bạn muốn nó là riêng tư, bạn không muốn truy cập vào các lớp khác. Nếu bạn muốn truy cập vào các lớp khác, đừng đặt nó ở chế độ riêng tư. –