在Java中的不同类之间共享数据的最佳方式是什么?我有不同的方法在不同的文件中使用不同类的变量。 让我尽量说明我的问题的一个简化版本:如何在Java中的不同类之间共享数据
这是我的代码之前:
public class Top_Level_Class(){
int x, y;
// gets user input which changes x, y;
public void main(){
int p, q, r, s;
// compute p, q, r, s
doA(p,q,r);
doB(q,r,s);
}
public void doA(int p, int q, int r){
// do something that requires x,y and p, q, r
}
public void doB(int q, int r, int s){
// does something else that requires x, y and q, r, s
}
}
现在看起来是这样的:
public class Top_Level_Class(){
int x, y;
SomeClass1a a = new SomeClass1a();
SomeClass1a b = new SomeClass1b();
// gets user input which changes x, y;
public void main(){
int p, q, r, s;
// compute p, q, r, s
a.doA(p,q,r);
b.doB(q,r,s);
}
public class SomeClass1a() { // in its own separate file
public void doA(int p, int q, int r){
// do something that requires x,y and p, q, r
}
}
public class SomeClass1b() { // in its own separate file
public void doB(int q, int r, int s){
// does something else that requires x, y and q, r, s
}
}
所以无论如何,我应该通过x和y每次(其中x,y是存储在helper类func中的变量)?
a.set(x,y);
a.doA(p,q,r);
我的想法是有一个特殊的容器类,其中x和y是举行。顶级类将拥有容器类的实例,并使用set方法更改x,y。
// in the top level class:
Container c = new Container(x,y);
a.setContainer(c);
b.setContainer(c);
我的帮助类也有一个容器的实例,它将指向与顶层相同的实例。这样他们访问与顶层相同的x,y。
我想知道我是否应该
- 使用容器类,Y每次
- 负载x转换成子类
- ?一些更好的方法?
可悲的是,这里的答案是'它取决于'。程序员.se可能是这个问题更加肥沃的目标。 – bmargulies 2010-12-12 00:49:56
如果内部类不是静态的,那么它也可以访问父类成员... – Vojta 2010-12-12 00:50:49
如果它在不同的文件中,它不是内部类。如果它不扩展超类,它就不是子类。 – Armand 2010-12-12 03:25:39