Inner and Nested

Есть класс Worker, ему нужно добавить конструктор по умолчанию и с параметрам, так же методы получения и установки, и метод toString().

public class Worker
{
    private int id;
    static int counterId;

    private String surname;
    private String name;
    private int age;
    private int gender;
    private Address address;  <---
    private Contacts contacts;

    public Worker()
    {
       
    }

    public Worker(String surname, String name, int age, int gender)
    {
        id = counterId++;

        this.surname = surname;
        this.name = name;
        this.age = age;
        this.gender = gender;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getSurname() {
        return surname;
    }

    public void setSurname(String surname) {
        this.surname = surname;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public int getGender() {

        return gender;
    }

    public void setGender(int gender) {
        this.gender = gender;
    }

    public Address getAddress() {
        return address;
    }

    public void setAddress(Address address) {
        this.address = address;
    }

    public Contacts getContacts() {
        return contacts;
    }

    public void setContacts(Contacts contacts) {
        this.contacts = contacts;
    }

    @Override
    public String toString() {
        return "Worker № " + counterId + ": " + surname + " " + name + ", " + age + ", " + gender;
    }

    //внутрений клаcc
    public class Gender
    {
        public static final int NOT_SPECIFIED = 0;
        public static final int MALE = 1;
        public static final int FEMALE = 2;

        public static final int MIN = 0; //Минимальное значение пола
        public static final int MAX = FEMALE; //Максимальное значение пола
    }
    
public class Address
    {
        private String country;
        private String region;
        private String town;
        private String house;
        private String apartment;

        public Address()
        {

        }

        public Address(String country, String region, String town, String house, String apartment) {
            this.country = country;
            this.region = region;
            this.town = town;
            this.house = house;
            this.apartment = apartment;
        }

        public String getCountry() {
            return country;
        }

        public void setCountry(String country) {
            this.country = country;
        }

        public String getRegion() {
            return region;
        }

        public void setRegion(String region) {
            this.region = region;
        }

        public String getTown() {
            return town;
        }

        public void setTown(String town) {
            this.town = town;
        }

        public String getHouse() {
            return house;
        }

        public void setHouse(String house) {
            this.house = house;
        }

        public String getApartment() {
            return apartment;
        }

        public void setApartment(String apartment) {
            this.apartment = apartment;
        }

        @Override
        public String toString() {
            return "Address: " + country + " " + region + " " + town + " " + house + " " + apartment;
        }
    }
}

В классе Worker есть внутренний класс Address. У каждого работника должен быть уникальный адрес. Как правильно вызвать Address в main

public static void main(String[] args)
    {
        Worker worker1 = new Worker("Белоусов", "Максим", 23, 5);
        worker1 = new Worker.Address("test","test","test","test","test");

        System.out.println(worker1 + "\n" + worker2 + "\n" + worker3 );
    }

Ответы (1 шт):

Автор решения: Igor
    @Override
    public String toString() {
        return "Worker № " + id + ...
                             ^^
    }

    public Address getAddress
    {
        return address;
    }

    public class Address
    {
        ...
        public Address()
        {
            Worker.this.address = this;
        }

        public Address(String country, String region, String town, String house, String apartment) 
        {
            this();
            this.country = country;
            ...
→ Ссылка