Java:将变量传递给不同的类

时间:2016-02-07 02:43:27

标签: java

我是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;
    }
}

3 个答案:

答案 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;
}