每次我调用私有静态sClass x = new sClass()
时,aClass
,我想将信息(数组)存储在sClass
的{{1}}中,例如aClass
{1}}已实例化。这甚至可能吗?什么是最正确的面向对象解决方案? (如果有多个,我问你是否可以列出它们)
我有这样的事情:
aClass
基本上我想使用在sClass中构造aClass的时间,将它保存到数组中,这样我就可以比较每个aClass的开始时间。
答案 0 :(得分:1)
静态属性是在单个实例中绑定到其父类的属性。
可以将类的新实例存储到静态属性x中(这就是你现在正在做的事情,但x只能容纳1个实例(最新的sClass)你创建并加载到x)的实例。
根据您的需要,您可能拥有私有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 []数组。
当然有一些问题: