gpt4 book ai didi

java - 为什么这个对象在没有组合类的情况下仍然存在,即使它是组合的

转载 作者:行者123 更新时间:2023-12-02 09:57:37 26 4
gpt4 key购买 nike

我知道在组合内部组合的类时,它的对象不应该存在于其类之外,但在下面的示例中,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;
}

}

最佳答案

如果您不希望 Sword 被其他任何东西访问,您可以将其创建为私有(private)内部类

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

关于java - 为什么这个对象在没有组合类的情况下仍然存在,即使它是组合的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55879858/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com