我是Java的新手并使用像this.room1 = new room1
这样的代码编写了一个程序,以帮助使用全局变量将我的变量传递给不同的类......我想知道我们是否有办法在没有使用this.
?我的代码完全符合它的预期。它询问用户2个房间的长度和宽度,计算面积,然后它为孩子分配较小的房间,为成人分配较大的房间....这是我的代码:
public rooms(double L, double W) {
this.L = L;
this.W = W;
}
//method to calculate area
public double area() {
return L*W;
}
//get and set methods
public double getL() {
return L;
}
public void setL(double L) {
this.L = L;
}
public double getW() {
return W;
}
public void setW(double W) {
this.W = W;
}
}
答案 0 :(得分:0)
这些不是全局变量,而是类(对象)的成员
public house() {
// these 2 lines are equivalent:
this.room1 = new rooms();
room1 = new rooms();
}
public house(rooms room1, rooms room2) {
// here you need the this, otherwise the compiler assumes you
// mean room1 that you got as a parameter to your function
this.room1 = room1;
}
答案 1 :(得分:0)
这里不需要使用“this”这个词。 room1可以访问该类中的所有非静态方法(假设您没有在另一个非静态方法中再次声明room1)。但是,使用“this”对于阅读代码的人来说很有帮助。它将告诉读者该变量已在程序的早期声明,并在稍后协助调试。
答案 2 :(得分:0)
我想知道我是否可以在不使用
this.
的情况下执行此操作?
如果实例变量的名称与静态变量的名称相同,则无法执行此操作。
<小时/> 假设他们的名字不一样,如下所示:
public house(rooms r1, rooms r2) {
this.room1 = r1;
this.room2 = r2;
}
然后它可能是这样写的:
public house(rooms r1, rooms r2) {
room1 = r1;
room2 = r2;
}