2012-10-11 56 views
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 
} 
} 

在这个例子中马有-A Halter.Can我们称之为myHalter.tie(绳);这样的:拥有-A关系的java

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

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

} 

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

+0

代码是'myHalter.tie(rope);'在方法中吗?或者这是你的确切代码?如果不是 - 这是问题。 – amit

+0

想一想你什么时候需要它被调用,并把它放在正确的地方。如果您希望在对象初始化期间调用它,请将其放入构造函数中。如果在一个方法中 - 把它放在一个方法中。 – amit

+0

你想做什么?如果你告诉我们,也许我们将能够提供帮助。 – Pablo

回答

1

语句/类中的主体字段声明必须被放入一个方法体,一个构造初始化块。例如,如果你试图编译这段代码将是OK:

public class Horse { 

    private Halter myHalter = new Halter(); 

    { 
     myHalter.tie(new LeadRope()); 
    } 
} 
1

你在课堂上块倾斜调用方法,你必须创建一个方法比你可以调用一个方法,在方法的主体,或者也可以称之为静态,实例或构造块

1

好方法试试这个....

-Has-A relationship被称为Composition

public class Bathroom{ 

Tub tub; 


} 


public class Tub{ 



} 

-我们可以说,Bathroom有型Tub参考,这意味着Bathroom实例变量tub

相关问题