почему этот объект все еще существует без составного класса, даже если он расположен - PullRequest
0 голосов
/ 27 апреля 2019

я знаю, что в композиции класс, составленный внутри, его объект не должен существовать вне его класса, но в примере ниже класс Sword состоит из класса Unit, и я все еще могу создать его объект независимобез класса юнитов, как я делал в main, как я могу предотвратить существование Sword объекта независимо?

public class Main {

public static void main(String[] args) {

    Sword sword = new Sword();

}
}

class Sword {
private int a;
}


class Unit {
private String s1;
private Sword s;

void setProperty(String s1, Sword s) {
    this.s1 = s1;
    this.s = s;
}

}

1 Ответ

1 голос
/ 27 апреля 2019

Если вы не хотите, чтобы Sword был доступен для чего-либо еще, вы можете создать его как частный внутренний класс

class Unit
{
    private String s1;
    private Sword s;

    public Unit(String s1)
    {
        this.s1 = s1;
        this.s = new Sword();
    }

    private class Sword
    {
        private int a;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...