Как исправить ошибку вывода в агрегации java? - PullRequest
0 голосов
/ 18 января 2020

Мой код работает нормально, но на выходе оба сотрудника имеют одинаковый адрес. Почему так происходит и как я могу это решить?

package practice;

class address{
    static String country,state,cityname;
    public address(String country, String state, String cityname) {
    this.country=country;
    this.state=state;
    this.cityname=cityname;
    }
}
class employee{
    String name;
    int id;
    int age;
    address add;
    public employee(String name, int id, int age,address add) {
    this.name=name;
    this.id=id;
    this.age=age;
    this.add=add;
    }
    void display() {
        System.out.println(name+" "+id+" "+age);
        System.out.println("the employee stays at"+ address.country+" "+ 
        address.state+" "+address.cityname);
    }
}
public class Document {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        address a2 = new address("A","B","C");
        address a1 = new address("D","E","F");
        employee e1 = new employee("lmn",123,20,a2);
        employee e2 = new employee("pqr", 456,24,a1);
        e1.display();
        e2.display();
    }
}

1 Ответ

2 голосов
/ 18 января 2020

Проблема заключается в том, что переменные c в address:

class address{
    static String country,state,cityname;
...

удаляют ключевое слово static.

Также сделайте ваши свойства приватными и добавьте методы получения и установки.

Позаботьтесь о java соглашениях об именах. Имена классов должны начинаться с заглавной буквы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...