-2

我正在努力访问一个对象及其来自另一个类的方法。我写了一些代码来说明我的问题

注意:以下代码不可编译或不可运行,只是为了解释我的问题。

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”?

4

2 回答 2

1

我会打电话Brand给集合,例如

brand.addTo(collection);

例如

public class Brand {
   private Container container;
   public void addTo(Container c) {
      c.addToList(this);
      container = c;
   }
}

然后,品牌可以添加自己,并持有对该系列的引用。这确实意味着该品牌引用了单个系列,我不确定这是否真的是您想要的。

稍微好一点的解决方案是在构造 时提供容器BrandBrand然后只将自身添加到集合中一次,并且从一开始就具有对集合的引用。

于 2013-02-14T16:36:27.597 回答
0

您必须使用对 aContainer对象的引用,并对其进行初始化。在错误行之前:

    Container con1 = new Container();  <-- the inicialization by creating a new object.

               ^
               |
               |
       the reference/variable

更新答案评论:您必须通过实例;通常作为方法的参数。我担心你对Java基础的研究太少了,这个问题有很多地方错了。

搜索以下概念:

  • 变量及其作用域。
  • 局部变量 vs 实例变量 vs 静态变量。
  • 方法参数。
于 2013-02-14T16:37:05.440 回答