相关疑难解决方法(0)

为什么要使用getter和setter/accessors?

使用getter和setter的优点是什么 - 只能获取和设置 - 而不是简单地使用公共字段来存储这些变量?

如果getter和setter做的不仅仅是简单的get/set,我可以非常快地解决这个问题,但我并不是100%清楚如何:

public String foo;
Run Code Online (Sandbox Code Playgroud)

更糟糕的是:

private String foo;
public void setFoo(String foo) { this.foo = foo; }
public String getFoo() { return foo; }
Run Code Online (Sandbox Code Playgroud)

而前者需要很少的样板代码.

java oop getter setter abstraction

1472
推荐指数
26
解决办法
37万
查看次数

为什么我们需要创建类变量来获取和设置属性?

非常简单的问题,但我发现理解我们为什么这么做非常重要.

我可以在类中创建一个属性,如下所示:

第一种方法:

public class MyClass
{
   public string MyProperty {get;set;}
}
Run Code Online (Sandbox Code Playgroud)

第二种方法:

public class MyClass
{
    private string _myProperty;

    public string MyProperty
    {
        get
        {
            return _myProperty;
        }
        set
        {
            _myProperty = value;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

几乎所有文章都使用后一种方法.为什么我们需要在类中创建一个临时变量来保存字符串值.为什么我们不能只使用第一种方法?第二种方法是否提供任何好处?创建额外的变量来存储值是不是很糟糕的内存和性能?

c# automatic-properties

2
推荐指数
1
解决办法
4248
查看次数

标签 统计

abstraction ×1

automatic-properties ×1

c# ×1

getter ×1

java ×1

oop ×1

setter ×1