java - 公共(public)属性(property) VS 私有(private)属性(property)与 setter/getter ?

标签 java properties private public getter

这个问题困惑了我一段时间。可以直接访问的公共(public)属性还是带有 getter 的私有(private)属性?哪个更好/正确,为什么?

最佳答案

直接公开字段被认为是一种不好的做法。

最好保持字段私有(private),只暴露 getter 和 setter。一个优点是您可以为 getter 和 setter 选择不同的访问级别,而字段只有一个访问级别。使用 getter 的另一个优点是它允许您在不更改类接口(interface)的情况下更改实现。

更好的做法是尽可能避免使用 getter 和 setter。而是使用封装更高级别行为的方法。这是因为对象不应该篡改其他对象的内部状态(通过直接访问字段,或通过 getter 和 setter 间接访问)。

相关

关于java - 公共(public)属性(property) VS 私有(private)属性(property)与 setter/getter ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8002928/

相关文章:

function - 在Delphi中,如何从asm语句中调用私有(private)属性读取函数

C++类和虚方法

java - 我正在尝试从子类访问私有(private)变量

image - 使用 Docker 从私有(private)注册表加载具有依赖项的镜像

java - 如何使用 JNA 将可变长度数组映射到从 native 方法返回的结构中

Java 程序在扫描仪可以第二次接受输入之前关闭

JavaFX 节点部分边框

c# - XML 序列化程序无法处理属性

java - Axis 网络服务错误

Spring PropertyPlaceholderConfigurer 未读取默认属性