java - 为什么这个对象在没有它的组合类的情况下仍然存在,即使它是组合的
问题描述
我知道在组合中,在里面组合的类,它的对象不应该存在于它的类之外,但是在下面的例子中,Sword
类被组合到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;
}
}
解决方案
如果您不想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;
}
}
推荐阅读
- regex - 无法使用正则表达式关联字符串
- excel - 如果四个数字单元格匹配,则从第 5 个单元格返回值
- autodesk-forge - 如何在 Forge 查看器中复制或克隆模型的元素
- javascript - 循环遍历对象数组并获取特定键的最快方法
- java - bug:java.lang.SecurityExceptionsigner信息与同包中其他类的signer信息不匹配
- javascript - 我们如何调整 sap.m.table 中的行高?
- angular - 无法匹配任何路由。Nativescript 中的 URL 段错误
- kubernetes - Helm 安装 Kubernetes Federation v2 错误
- jquery - Bootstrap 导航栏响应式
- python-3.x - 使用预训练向量的问题。标记化问题