0
如果存在访问方法(get/set),直接引用字段attributtes会不好?通过访问方法或直接在超类中引用attributtes?
此外,当处理JComponents时,早期考试在构造函数中初始化字段attributtes时,当我看不到它无法在类字段中初始化的原因时。这是有充分的理由,还是我可以自由选择?
如果存在访问方法(get/set),直接引用字段attributtes会不好?通过访问方法或直接在超类中引用attributtes?
此外,当处理JComponents时,早期考试在构造函数中初始化字段attributtes时,当我看不到它无法在类字段中初始化的原因时。这是有充分的理由,还是我可以自由选择?
创建一个私人领域的获取和设置帮助隐藏类的内部实现。这意味着您可以更改内部表示,而无需将外部接口更改为其他类。
例如,如果您有一个自定义类实现类似于一系列值的数据结构。第一个实现可以使用一组值。
添加一些新功能,您可以决定将数组的内部表示形式从数组更改为列表。
这里是一个例子。使用数组
原始代码:
public class MySequence {
private Object[] values;
public Object[] getValues() {
return values;
}
public void setValues(Object[] values) {
this.values = values;
}
}
那么你认为可以创建以添加新值的方法是一个好主意。在这里你可以改变的内部实现,给MySequence类的用户留下相同的接口。
public class MySequence {
private List<Object> values;
public void add(Object value) {
values.add(value);
}
public Object[] getValues() {
return values.toArray(new Object[values.size()]);
}
public void setValues(Object[] values) {
this.values = Arrays.asList(values);
}
}
1一般来说,因为它击败了访问者的观点。 2这是一个风格问题。建议您使用评估代码的人选择的样式。 – khelwood
第一个问题的答案:http://stackoverflow.com/questions/1568091/why-use-getters-and-setters – Akah
我明白了。只是在设置字段中的变量有点令人沮丧之后,我们必须在纸面上撰写考试并初始化构造函数中的8个字段组件。猜猜我只是不得不把它吸了。 –