我对java如何处理所有类都是困惑。java可变范围问题
我做一个类foo.java
并在foo.java
的main
方法我做的foo
一个实例(一类创建本身是没有意义的我,但它在java中似乎正常的吗?)
然后我做的一个实例另一个类bar
,所以我现在在foo
类中有foo
和bar
的实例,但是如何访问带有bar中的函数的foo
的成员变量?
foo
是处理代码,bar
是UI,需要查看foo
中的所有数据,以便它可以显示它。
我对java如何处理所有类都是困惑。java可变范围问题
我做一个类foo.java
并在foo.java
的main
方法我做的foo
一个实例(一类创建本身是没有意义的我,但它在java中似乎正常的吗?)
然后我做的一个实例另一个类bar
,所以我现在在foo
类中有foo
和bar
的实例,但是如何访问带有bar中的函数的foo
的成员变量?
foo
是处理代码,bar
是UI,需要查看foo
中的所有数据,以便它可以显示它。
有很多的可能性。一种方法是构造foo
与bar
实例:
public class Foo {
public void someFooMethod() {
}
public static void main(String[] args) {
Foo foo = new Foo();
Bar bar = new Bar(foo);
bar.someBarMethod();
}
}
public class Bar {
private Foo fooLocalRefence;
public Bar(Foo foo) {
this.fooLocalReference = foo;
}
public someBarMethod() {
this.fooLocalReference.someFooMethod();
}
}
是的,组合总是一个更好的选择 –
我建议你看一下在Oracle站点上的Java教程 - >http://download.oracle.com/javase/tutorial/java/index.html
按照以下,这会给你一个更好地了解如何用Java编写的应用程序 - 写代码,你不明白,会造成你的问题在以后的发展过程中.....
首先,Foo
的main
方法可能static
,所以没有的Foo
创建Foo
一个实例。
其次,Foo
应该通过getter方法公开其数据,并且Bar
应该通过在所提供的Foo
实例上调用getter方法来访问数据。
吧,它是如何调用getter方法的?你刚才提出的问题没有解决它 – Skeith
@Skeith我说:“Foo应该通过getter方法暴露它的数据,并且Bar应该访问所提供的Foo实例上的数据”。假定getter方法是公开的,所以Bar将能够调用它们。这正是Pablo发布的内容(除非他的Foo方法返回void)。 –
你错了“创建自己的类对我来说没有意义,但在java中似乎很正常”,因为你的术语是错误的。你实际上在做的是创建类Foo
的实例。而main()
仅仅是应用程序的入口点,因为JVM只需要知道从哪里开始。
如果您希望两个不同类的实例共享信息,则需要提供其中一个参考。像这样的:
Foo foo = new Foo();
Bar bar = new Bar(foo);
小样本PF代码将是非常有价值的。你可以发布你的两个类,以便我们可以看到你写的到目前为止? – Mechkov
在你的酒吧对象中拥有一个foo对象 –