相关疑难解决方法(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万
查看次数

什么是封装?它是如何实际隐藏数据的?

搜索提出了一个简单的定义:数据隐藏.

但是,请考虑以下两个示例:

1)第一个例子:

Class Employee
{
    public int age;
}
Run Code Online (Sandbox Code Playgroud)

2)第二个例子:

Class Employee
{
    private int age;

    public int getAge(){return age;}
}
Run Code Online (Sandbox Code Playgroud)

问题:
在上述两个示例中,没有数据隐藏,age要么被其他人修改,要么被其他人查看.数据隐藏在哪里?封装如何帮助上面的例子?

.net oop encapsulation design-patterns hidden-field

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