我刚刚开始学习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
关键字的情况下访问实例变量。那么最好的方法是什么?或者它们之间的区别是什么?
答案 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确保它是实例变量,宽度是局部变量。