在继承或使用接口的情况下,如果变数在母系中固定,你就可以这样做。 由于你正在延长一个JLabel,你应当对两个班子进行接口:
public interface MyInterface {
int someint = 9;
}
public class MyClass1 extends JLabel implements MyInterface {
//this class has access to `someint`
}
public class MyClass2 extends JLabel implements MyInterface {
// also has access to `someint`
}
Edit
由于你希望能够改变不同类别相同的变数,你必须保证您的正本不会改变,并且正在改变同样的变数,因此,你应当使用<条码>挥发性<<>> > 符号>,在变量上用关键词来表示,所有线人都应核对其更新的价值。
现在,你需要单独开设一个班级,以便从其他班级获得价值。 您必须使用<代码>static关键词,以确保所有类别都保存一份副本。
public class MyVariableWrapper {
public static volatile int some_var = 9;
public void updateSomeVar(int newvar) {
some_var = newvar;
}
public int getSomeVar() { return some_var; }
}
现在,其他两个班子也这样做:
public class MyClass1 extends JLabel {
MyVariableWrapper myVariableWrapper;
MyClass1() {
super();
myVariableWrapper = new MyVariableWrapper();
// now I have access to `some_var`
}
}
public class MyClass2 extends JLabel {
MyVariableWrapper myVariableWrapper;
MyClass2() {
super();
myVariableWrapper = new MyVariableWrapper();
// now I have access to the same `some_var` as MyClass1
}
// this is a wrapper method for your convenience
// since you don t like the excess code when accessing the variable
public int getSomeVar() {
return myVariableWrapper.some_var;
// or myVariableWrapper.getSomeVar();
}
public void setSomeVar(int newvar) {
myVariableWrapper.some_var = newvar;
// or myVariableWrapper.setSomeVar(newvar);
}
}
现在你可以这样做:
MyClass2 myClass2 = new MyClass2();
System.out.println(""+myClass2.getSomeVar());