2012-10-11 94 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

相關問題