【问题标题】:Correct way to change a field in a class when in that class?在该类中更改该类中的字段的正确方法?
【发布时间】:2012-12-23 20:07:50
【问题描述】:

所以我最近学会了如何使用类,但我不确定在该类中更改类中字段的最佳方法是什么?

我的意思是我知道当我在另一个类中更改它时,我会执行类似 example.setX(0) 的操作来更改该类中的 X 值,因为它是一个私有变量。但是使用该类中的代码更改值的更好方法是什么,我应该只执行 x = 0、setX(0) 还是 this.setX(0)?更公认的做法是什么?

【问题讨论】:

标签: java oop getter-setter


【解决方案1】:

如果您想避免调用 setter 的开销,并且您确定 setter 中“永远”不会比赋值多,那么可以调用

x = 0;

【讨论】:

    【解决方案2】:
    this.setX(0)
    

    确保包含更改变量所需的附加逻辑(如果设置 x,是否需要检查 y?)。并且this 清楚地表明了变量在其中。

    【讨论】:

    • 如果您已经在课堂上,则封装无关紧要。
    【解决方案3】:

    如果你的类中有一个私有全局变量 x,你可以这样做

    x = 0; //If you don't have another variable x defined for the method, if you do use
    
    this.x = 0; 
    

    【讨论】:

    • Java 中没有全局变量这种东西。可能你的意思是实例变量。
    【解决方案4】:

    不需要通过setter来设置,直接写x = 0;您需要 getter 和 setter 来访问其他类的变量。

    【讨论】:

      【解决方案5】:

      典型的方法是在你的班级中使用普通作业:

      x = 5;
      

      并在课堂外使用 getter/setter。

      object.setX(5);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-10-29
        • 1970-01-01
        • 1970-01-01
        • 2017-01-05
        • 1970-01-01
        • 2022-10-13
        • 2021-05-17
        • 1970-01-01
        相关资源
        最近更新 更多