Nếu bạn có một lớp lồng nhau tĩnh riêng trong Java, bạn có nên sử dụng getters và setters thay vì truy cập trường trực tiếp không?Có được khuyến khích đóng gói cho các lớp bên trong tĩnh tư nhân không?
Ví dụ. truy cập lĩnh vực trực tiếp:
public class Application {
private List<MyInnerClass> myInnerClassList;
// ...
public void foo() {
MyInnerClass inner = new MyInnerClass();
inner.bar = 50;
myInnerClassList.add(inner);
}
private static class MyInnerClass {
private int bar;
}
}
vs đóng gói:
public class Application {
private List<MyInnerClass> myInnerClassList;
// ...
public void foo() {
MyInnerClass inner = new MyInnerClass();
inner.setBar(50);
myInnerClassList.add(inner);
}
private static class MyInnerClass {
private int bar;
public int getBar() {
return bar;
}
public void setBar(int bar) {
this.bar = bar;
}
}
}
Đóng gói thường là một điều tốt, giữ cho các lớp độc lập với nhau (ví dụ: bạn có thể muốn thay đổi cách bạn gán 'thanh'). Nhưng cũng phụ thuộc vào những gì bạn muốn làm với 'MyInnerClass'. – m0skit0
nếu không ai khác được truy cập vào lớp bên trong đó hơn lớp bên ngoài chứa nó, nó tương đối dễ dàng để tái cấu trúc nó nếu nhu cầu phát sinh để sử dụng getters và setters. vì vậy tôi sẽ chỉ sử dụng một biến đơn giản. –