Java POJO 中的字段、变量、属性和属性之间有什么区别?

2022-08-31 07:00:37

当提到具有 getters/setter 的 Java POJO 的内部私有变量时,我使用了以下术语:

  • 变量
  • 属性
  • 财产

以上有什么区别吗?如果是这样,使用的正确术语是什么?当此实体持久化时,是否有其他术语可供使用?


答案 1

从这里: http://docs.oracle.com/javase/tutorial/information/glossary.html


    • 类的数据成员。除非另有指定,否则字段不是静态的。

  • 财产

    • 用户可以设置的对象的特征,如窗口的颜色。

  • 属性

    • 未在上述词汇表中列出

  • 变量

    • 由标识符命名的数据项。每个变量都有一个类型(如 int 或 Object)和一个作用域。另请参见类变量、实例变量、局部变量。

答案 2

是的,有。

变量可以是局部变量、字段变量或常量(尽管这在技术上是错误的)。它像属性一样模糊。另外,您应该知道有些人喜欢调用最终的非静态(局部或实例)变量

"价值观”。这可能来自新兴的JVM FP语言,如Scala。

字段通常是实例类上的私有变量。这并不意味着有一个获取者和一个设置者。

属性是一个模糊的术语。它很容易与XML或Java命名API混淆。尽量避免使用该术语。

属性是 getter 和 setter 组合。

下面是一些示例

public class Variables {

    //Constant
    public final static String MY_VARIABLE = "that was a lot for a constant";

    //Value
    final String dontChangeMeBro = "my god that is still long for a val";

    //Field
    protected String flipMe = "wee!!!";

    //Property
    private String ifYouThoughtTheConstantWasVerboseHaHa;

    //Still the property
    public String getIfYouThoughtTheConstantWasVerboseHaHa() {
        return ifYouThoughtTheConstantWasVerboseHaHa;
    }

    //And now the setter
    public void setIfYouThoughtTheConstantWasVerboseHaHa(String ifYouThoughtTheConstantWasVerboseHaHa) {
        this.ifYouThoughtTheConstantWasVerboseHaHa = ifYouThoughtTheConstantWasVerboseHaHa;
    }

}

还有更多的组合,但我的手指越来越累:)


推荐