静态属性是在 1 个单个实例中绑定到其父类的属性。
可以将类的新实例存储到静态属性 x 中(这就是您现在正在做的事情,但 x 将只保存 1 个实例(您创建并加载到 x 中的最新 sClass() 实例)。
根据您的需要,您可能有一个私有的 sClass[] sClassArray(一个 sClass 对象数组),而不是静态 sClass x,并且每次创建新的 sClass 对象时,将其作为元素加载到数组中。
例如,您可以在拥有私有静态 x 属性的类中执行以下操作:
private static sClass[] sClassArray = new sClass[10]; // Will hold up to 10 sClass objects.
// When you instantiate new instances of sClass objects:
for (int i = 0; i < sClassArray.length; i++) {
if (sClassArray[i] == null) {
// Basically load the new sClass object into a slot in the array that hasn't yet been taken.
sClassArray[i] = new sClass();
break;
}
}
然后下次需要查看实例化的 sClass 对象时,可以遍历 sClassArray[] 数组。
当然有几个问题:
- 为什么需要静态跟踪动态对象?
- 放置一个对象数组可能会占用不需要的内存(您可以选择回收数组元素,只需查找对象池模式)。