很难理解你问的 wjat,但这里有一个可能的答案:
使 B 类成为 A 的子类:
public class A {
// Declaration of the 'array' attribute
public float[] array = new float[]{1.1f, 2.2f, 3.3f};
}
class B extends A {
// Every instance of 'B' also has an 'array' attribute
}
如果array被重新声明为public static,您会遇到一种情况,即有一个array属性可以被称为A.arrayor B.array。(或者在 anyA或Bas just array... 甚至 asa.array或b.arraywherea并分别b具有类型A和B。)
如果您无法在Aand B(或A,B以及包含声明的某些第三类)之间创建直接或子类型关系,那么您就不走运了。他们无法共享声明。
但是,您可以使用静态导入使声明看起来像是共享的。例如:
public class A {
// Declaration of the 'array' attribute
public float[] array = new float[]{1.1f, 2.2f, 3.3f};
}
import static A.array;
class B {
// now I can use 'array' without qualifying it with 'A'
}
static顺便说一句,使用变量来共享状态通常是一个坏主意,尤其是表示为裸数组的状态。这显然是非面向对象的。