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

为什么私有的getter方法违反了封装,但是缺少getter方法却没有呢?

我正在为OCP 8处理一些练习问题。

一个问题涉及一类具有私有字段和私有获取方法的类。正确的答案是该代码违反了封装,因为getter方法应该是公共的。

public class A {
    private String a;
    private String getA() { return a; }
}
Run Code Online (Sandbox Code Playgroud)

但是,另一个问题是具有私有字段且根本没有getter方法的类。正确的答案是该代码遵循封装原则。

public class A {
    private String a;
}
Run Code Online (Sandbox Code Playgroud)

假设所有数据字段都是私有的,那么大多数封装的顺序不应该至少是无获取方法,私有获取方法和公共获取方法吗?

我知道我的问题听起来可能是基于意见的,但考试却不是。

java getter encapsulation

0
推荐指数
1
解决办法
70
查看次数

标签 统计

getter ×2

java ×2

abstraction ×1

encapsulation ×1

oop ×1

setter ×1