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有一个Halter.Can我们可以像这样调用 myHalter.tie(rope); :
public class Horse extends Animal {
private Halter myHalter = new Halter();
myHalter.tie(rope); // Without using the public void tie method
}
它出错了。我对此的解释是它不是main()方法,但任何人都可以用更好的方式解释它。
答案 0 :(得分:1)
类体中除变量/字段声明之外的语句必须放入方法体,构造函数或初始化块。例如,如果您尝试编译此代码就可以了:
public class Horse {
private Halter myHalter = new Halter();
{
myHalter.tie(new LeadRope());
}
}
答案 1 :(得分:1)
你不能在类块中调用方法,你必须创建一个方法,而不是在方法体中调用方法,或者你可以在静态,实例或构造函数块中调用方法
答案 2 :(得分:1)
好的,试试这个......
- Has-A relationship
称为Composition
。
public class Bathroom{
Tub tub;
}
public class Tub{
}
- 我们可以说Bathroom
有一个类型 Tub
的引用,这意味着Bathroom
有一个类型为tub
的实例变量。