您好,匿名用户

在面向对象编程中对对象内的私有属性操作是否应该使用getter和setter

0 投票

其实这不是只存在于java中的问题,所有oop语言都有这个疑惑,对初学者来说容易造成混乱。我用我熟知的java代码来举个例子

class Something {
    private int someNumber;

    public void testMethod() {
        // do this
        setSomeNumber(getSomeNumber() + 1);

        // or do this
        someNumber = someNumber + 1;
    }

    public void setSomeNumber(int someNumber) {
        this.someNumber = someNumber;
    }

    public int getSomeNumber() {
        return someNumber;
    }
}

在上面的testMethod代码中看到了我们常用的两种写法,对我这种菜鸟来说,影响你使用某种写法的原因可能只是你偶尔的心血来潮。

如果在外部使用这个对象,毫无疑问我们会使用setter和getter方法,但是在它自身内部呢?

用户头像 提问 2012年 12月1日 @ Maokai 中士 (1,427 威望)
分享到:

1个回答

0 投票

用private 时意味着你要的是封装,当需要外部访问时就要使用public ,所以,内部还是用 this.来操作会符合面向对象的思想。

用户头像 回复 2012年 12月1日 @ Cancer 中士 (1,211 威望)
提一个问题:

相关问题

0 投票
1 回复 204 阅读
0 投票
1 回复 293 阅读
用户头像 提问 2015年 6月22日 @ Galio 中士 (1,364 威望)
0 投票
1 回复 51 阅读
0 投票
1 回复 169 阅读
0 投票
1 回复 19 阅读
用户头像 提问 2019年 5月27日 @ Yorick 中士 (1,293 威望)

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

IT技术交流群 - 随意问
欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...