我正在努力访问一个对象,它是来自另一个类的方法。 我写了一些代码来说明我的问题
注意:以下代码不能编译或运行,只是为了解释我的问题。
class MainClass {
public static void(String[] args) {
Run r = new Run();
}
}
class Run {
Run() {
Brand cola = new Brand("Coca Cola");
Brand pepsi = new Brand("Pepsi");
// Creates the container object "con1" and adds brands to container.
Container con1 = new Container();
con1.addToList(cola);
con1.addToList(pepsi);
}
}
class Brand {
// In this class I have a method which needs to accsess the con1 object
containing all the brands and I need to access the method
public void brandMethod() {
if(con1.methodExample) { **// Error here. Can't find "con1".**
System.out.println("Method example returned true.");
}
}
}
class Container {
// This class is a container-list containing all brands brands
public boolean methodExample(){
}
}
我正在努力从Brand类中访问“con1”对象。 如何访问“con1”?
答案 0 :(得分:1)
我会将Brand
称为集合,例如
brand.addTo(collection);
e.g。
public class Brand {
private Container container;
public void addTo(Container c) {
c.addToList(this);
container = c;
}
}
然后品牌可以添加自己,并持有对该集合的引用。这确实意味着该品牌提到了一个系列,我不确定这是否真的是你想要的。
稍微好一点的解决方案是在构造Brand
时提供容器,然后Brand
只将自己添加一次到集合中,并从一开始就引用该集合。 / p>
答案 1 :(得分:0)
您必须使用对Container
对象的引用,并对其进行初始化。在错误行之前:
Container con1 = new Container(); <-- the inicialization by creating a new object.
^
|
|
the reference/variable
更新回复评论: 你必须传递实例;通常最常作为方法的参数。我担心你对Java基础知识的研究太少,这个问题有很多错误。
搜索以下概念: