加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 属性的动机是什么?

发布时间:2020-12-15 02:07:24 所属栏目:Java 来源:网络整理
导读:我有点困惑为什么语言有这些.我是一名 Java程序员,在我职业生涯的开始阶段,所以Java是我写的唯一一种语言,因为我开始实际上,你知道,得到它. 所以在Java中我们当然没有属性,我们编写了getThis()和setThat(…)方法. 拥有房产我们会得到什么? 谢谢. 编辑:另一
我有点困惑为什么语言有这些.我是一名 Java程序员,在我职业生涯的开始阶段,所以Java是我写的唯一一种语言,因为我开始实际上,你知道,得到它.

所以在Java中我们当然没有属性,我们编写了getThis()和setThat(…)方法.

拥有房产我们会得到什么?

谢谢.

编辑:另一个问题:具有属性的语言中出现了哪些命名约定?

解决方法

哪一个看起来更自然?

// A
person.setAge(25)
// B
person.age = 25;
// or
person.Age = 25; //depending on conventions,but that's beside the point

大多数人会回答B.

这不仅是语法糖,它在做反射时也有帮助;实际上,您可以在不依赖方法名称的情况下区分数据和操作.

以下是C#中不熟悉属性的示例:

class Person
{
    public int Age
    {
        set
        {
            if(value<0)
                throw new ArgumentOutOfRangeException();

            OnChanged();
            age = value;
        }

        get { return age; }
    }

    private int age;
    protected virtual void OnChanged() { // ... }
}

此外,大多数人总是使用属性而不是稍后推广公共成员,原因与我们总是使用get / set相同;没有必要重写绑定到数据成员的旧客户端代码.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读