在Java中访问类内部实例变量的最佳方法是什么?

时间:2014-08-01 11:48:47

标签: java oop this instance-variables

我刚刚开始学习Java 并且它非常棒。有一点我需要理解,在类中我们可以通过两种方式访问​​实例变量:

class Box {

    // Instance variables
    private int width;
    private int height;
    private int depth;

    // First way
    public void set_volume(int a, int b, int c) {
        this.width = a;
        this.height = b;
        this.depth = c;
    }

    // Second way
    public void set_volume_v2(int a, int b, int c) {
        width = a;
        height = b;
        depth = c;
    }

}

此处,可以在不使用this关键字的情况下访问实例变量。那么最好的方法是什么?或者它们之间的区别是什么?

3 个答案:

答案 0 :(得分:5)

使用this将允许您确保引用实例变量而不是参数,如果它们共享相同的名称。

这通常被认为是实例方法和构造函数中的最佳实践。

否则你的两种方法是等价的。

答案 1 :(得分:3)

最好的方法是始终使用this

 this.width = a;

这样我们就不会在参数名和实例变量之间混淆。

混淆的一个小例子是

  public void set_volume_v2(int width) {
        width = width;
    }

所以当你写this.width时,我们清楚地表明它是实例变量。

答案 2 :(得分:2)

实例变量应该是this关键字的访问权限,它会消除本地可验证同名的混淆。这会忽略下面的问题 -

public void set_volume_v2(int width, int height, int depth) {
    width = width;
    height = height;
    depth = depth;
}

这里为了更多的偏好,将使用local veriable。

public void set_volume_v2(int width, int height, int depth) {
    this.width = width;
    this.height = height;
    this.depth = depth;
}

而this.width确保它是实例变量,宽度是局部变量。