在这个类中,构造函数接受4个参数。并适当地初始化了这些值。将int imageid设置为mImageId等。
那么,如果由参数初始化成员变量,那么getter/setter序列的目的是什么?
据我所知。每个字段或成员变量的getter/setter实际上使类“公共”。还是getter/setter的目的是向另一个类广播一些“意图”?
public class Page {
private int mImageId;
private String mText;
private Choice mChoice1;
private Choice mChoice2;
public Page(int imageId, String text, Choice choice1, Choice choice2 ){
mImageId = imageId;
mText = text;
mChoice1 = choice1;
mChoice2 = choice2;
}
// start of getters/setters
public int getImageId(){
return mImageId;
}
public void setImageId(int id){
mImageId = id;
}
public String getText() {
return mText;
}
public void setText(String text) {
mText = text;
}
public Choice getChoice1() {
return mChoice1;
}
public void setChoice1(Choice choice1) {
mChoice1 = choice1;
}// Choice 1
public Choice getChoice2() {
return mChoice2;
}
public void setChoice2(Choice choice2) {
mChoice2 = choice2;
}// Choice 2
发布于 2015-09-20 22:07:39
setter允许您稍后更改变量的值。
getter允许您访问来自另一个类的变量的值。
在您的上下文中,我认为Page
描述了一些页面内容。现在,假设将这个Page
对象传递给某种类型的布局类,它将使用getter访问变量的值来呈现布局。由于变量被声明为私有变量,因此除了使用getter方法之外,没有其他方法访问它们。
发布于 2015-09-20 22:08:49
--这是一个可变的类,这意味着即使将初始状态设置为实例化,也可以在不创建新实例的情况下对其进行更改。
您可能会认为这是一个JavaBean,但是由于它没有公开无arg构造函数,而且getter或setter的名称也不匹配字段的名称,所以它没有严格遵循约定。
发布于 2015-09-20 22:10:50
在构造对象之后,可能仍然需要设置成员变量。
如果不实现setter,这将有效地使类不可变,这在某些情况下也可能是需要的行为。
所以,这取决于你在特定情况下的需要,设置者并不是强制性的。对于getters是的,如果您想读取对象的内容,这是常见的方法。但是它不需要是成员变量的1:1。
PS:我建议避免使用那些"m“前缀,这在Java中很少见,不能提供任何真正的值,而且会降低代码的可读性。
https://stackoverflow.com/questions/32688315
复制相似问题