首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >该类中getter/setter的用途

该类中getter/setter的用途
EN

Stack Overflow用户
提问于 2015-09-21 06:02:50
回答 5查看 210关注 0票数 0

在这个类中,构造函数接受4个参数。并适当地初始化了这些值。将int imageid设置为mImageId等。

那么,如果由参数初始化成员变量,那么getter/setter序列的目的是什么?

据我所知。每个字段或成员变量的getter/setter实际上使类“公共”。还是getter/setter的目的是向另一个类广播一些“意图”?

代码语言:javascript
运行
复制
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
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2015-09-21 06:07:39

setter允许您稍后更改变量的值。

getter允许您访问来自另一个类的变量的值。

在您的上下文中,我认为Page描述了一些页面内容。现在,假设将这个Page对象传递给某种类型的布局类,它将使用getter访问变量的值来呈现布局。由于变量被声明为私有变量,因此除了使用getter方法之外,没有其他方法访问它们。

票数 1
EN

Stack Overflow用户

发布于 2015-09-21 06:08:49

--这是一个可变的类,这意味着即使将初始状态设置为实例化,也可以在不创建新实例的情况下对其进行更改。

您可能会认为这是一个JavaBean,但是由于它没有公开无arg构造函数,而且getter或setter的名称也不匹配字段的名称,所以它没有严格遵循约定。

票数 2
EN

Stack Overflow用户

发布于 2015-09-21 06:10:50

在构造对象之后,可能仍然需要设置成员变量。

如果不实现setter,这将有效地使类不可变,这在某些情况下也可能是需要的行为。

所以,这取决于你在特定情况下的需要,设置者并不是强制性的。对于getters是的,如果您想读取对象的内容,这是常见的方法。但是它不需要是成员变量的1:1。

PS:我建议避免使用那些"m“前缀,这在Java中很少见,不能提供任何真正的值,而且会降低代码的可读性。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32688315

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档