为什么这个对象即使没有它的组成类也仍然存在

时间:2019-04-27 11:00:25

标签: java oop design-patterns

我知道在组成内部组成的类时,它的对象不应存在于其类之外,但在下面的示例中,Sword类被组成了Unit类,并且我仍然可以像我在main中所做的那样,在没有unit类的情况下独立创建它的对象,如何防止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 个答案:

答案 0 :(得分:1)

如果您不希望其他任何人访问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;
    }
}