0
public class Horse extends Animal {
    private Halter myHalter = new Halter();
    public void tie(LeadRope rope) {
        myHalter.tie(rope); // Delegate tie behavior to the
      // Halter object
    }
}

public class Halter {
    public void tie(LeadRope aRope) {
    // Do the actual tie work here
}
}

在这个例子中,Horse has-a Halter.Can we call myHalter.tie(rope); 像这样:

public class Horse extends Animal {
    private Halter myHalter = new Halter();

        myHalter.tie(rope); // Without using the public void tie method

}

它给出了一个错误。我对此的解释是它不是 main() 方法,但任何人都可以用更好的方式解释它。

4

3 回答 3

1

类主体中变量/字段声明以外的语句必须放入方法主体构造函数初始化块中。例如,如果您尝试编译此代码,则可以:

public class Horse {

    private Halter myHalter = new Halter();

    {
       myHalter.tie(new LeadRope());
    }
}
于 2012-10-11T10:11:21.013 回答
1

你不能在类块中调用方法,你必须创建一个方法,然后你可以在方法体中调用方法,或者你可以在静态、实例或构造函数块中调用方法

于 2012-10-11T10:12:35.013 回答
1

好吧试试这个....

- Has-A relationship被称为Composition

public class Bathroom{

 Tub tub;


}


public class Tub{



}

-我们可以说Bathroom有一个类型的引用 Tub,这意味着Bathroom有一个类型的实例变量tub

于 2012-10-11T10:13:25.787 回答