2016-02-07 2 views
0

Я новичок в Java и написал программу, используя код this.room1 = new room1, чтобы передать мои переменные в разные классы с использованием глобальной переменной ... Мне было интересно, есть ли у нас способ сделать это без использования this.? Мой код работает именно так, как предполагалось. Он запрашивает у пользователя длины и ширину 2-х комнат, вычисляет площадь, то она присваивает небольшую комнату для детей и большой комнаты для взрослых .... Это мой код:Java: Передача переменных в разные классы

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

короткий ответ нет, потому что вы передаете имя аргумента к функция такая же, как и одна из ваших переменных-членов – Pooya

ответ

0

Вам не нужно использовать слово «это» здесь. room1 доступен для всех нестатических методов внутри этого класса (при условии, что вы еще не объявили номер 1 другим нестатическим методом). Однако использование «этого» полезно для тех, кто читает ваш код. Он скажет читателю, что переменная уже была объявлена ​​ранее в вашей программе и позже помогает в ее отладке.

+0

Спасибо за вашу помощь ... Я понял это, и я чувствую себя довольно глупым ... lol ... Я только что создал новые имена переменных вместо этого. и используя одно и то же имя переменной ... – pikProgram

+0

@pikprogram вы можете отметить это как решение :). Благодаря! Предпочтительно, если вы сочтете это полезным :). – Floam

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; 
} 
+0

Спасибо ... Я понимаю это сейчас. – pikProgram

0

мне было интересно, если есть я S способ сделать это без использования this.?

No.

Если имена экземпляра переменные являются такими же, как из статических переменных, то вы не можете это сделать.


Пусть их имена не были такими же, как и в этом:

public house(rooms r1, rooms r2) { 
    this.room1 = r1; 
    this.room2 = r2; 
} 

Тогда это могло быть написано так:

public house(rooms r1, rooms r2) { 
    room1 = r1; 
    room2 = r2; 
} 
Смежные вопросы