Java中的静态和OOP帮助

Java中的静态和OOP帮助,java,oop,class,static,Java,Oop,Class,Static,每次我调用private staticsClass x=new sClass()时,比如说,aClass,我想在sClass中存储来自aClass的信息(数组),比如aClass被实例化的时间。这可能吗?什么是最正确的面向对象解决方案?(如果有多个,我问您是否可以列出) 我有这样的想法: private static sClass x = new sClass(); 基本上,我想使用在sClass中构造ACLlass的时间,将其保存到数组中,这样我就可以比较每个ACLlass的开始时间。静态属

每次我调用private static
sClass x=new sClass()
时,比如说,
aClass
,我想在
sClass
中存储来自
aClass
的信息(数组),比如
aClass
被实例化的时间。这可能吗?什么是最正确的面向对象解决方案?(如果有多个,我问您是否可以列出)

我有这样的想法:

private static sClass x = new sClass();

基本上,我想使用在sClass中构造ACLlass的时间,将其保存到数组中,这样我就可以比较每个ACLlass的开始时间。

静态属性是在一个实例中绑定到其父类的属性

可以将类的新实例存储到静态属性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;
    }
}
private static sClass[]sClassArray=new sClass[10];//最多可容纳10个sClass对象。
//实例化sClass对象的新实例时:
对于(int i=0;i
然后,下次需要查看实例化的sClass对象时,可以遍历sClassArray[]数组

当然,有几个问题:

  • 为什么需要静态跟踪动态对象
  • 拥有一个对象数组可能会占用不必要的内存(您可以选择循环使用数组元素,只需查找对象池模式)

  • 什么是“静态”类?你是说“静态内部”类,因为没有静态独立类?请展示一些代码来说明你尝试过的内容。对不起,我不太熟悉术语中的微妙之处。我是指静态内部。@John:让我们避免“可能性”.请出示代码。编程是一门严格的科学,所以我们需要问题中的精确信息才能给出合理的答案。