使用函数从类中返回变量比直接引用变量更有效吗?

时间:2012-03-13 22:53:03

标签: java

  

可能重复:
  Java: Are Getters and Setters evil?

我有一个名为Block的类,其中有一个名为inUse的简单布尔值。例如,在程序中其他地方的if语句中,最好使用一个名为inUse()的方法,该方法返回inUse布尔值或仅使用block.inUse引用该变量

e.g。

if(block.inUse == true) // do something

或者我应该使用

if(block.inUse()) //do something

其中inUse()将是块类

中的简单返回方法
boolean inUse() {
   return inUse }

由于

3 个答案:

答案 0 :(得分:2)

鉴于Java通常使用字节码解释器实现,因此在这个级别上的效率问题通常是没有意义的,因为解释器强加的开销成本会让你活着,没有盐或烧烤酱。

与授予对实例变量的访问权限相比,使用方法的优点是它允许程序员控制实例变量的修改。

答案 1 :(得分:0)

直接使用该值肯定是更有效的执行。但使用方法是最好的选择。这就是OO和Java的全部内容,变量的封装。

答案 2 :(得分:0)

取决于你的jre,它是JIT实现。许多JIT编译器在经常被调用后最终会编写简单的getter和setter。

我个人从未通过方法引用成员变量。我意识到这是个人偏好的问题,但我的一般感觉是一个对象不应该调用一个方法来获取(或设置)它自己的内部变量。