2011-05-13 167 views
0

我已被問到以下問題:接口實現

a)接口IntSet有一個稱爲isElem的單一方法。該方法採用int類型的單參數 並返回布爾結果。 完整定義接口IntSet。

到目前爲止我的答案是我。任何幫助,將不勝感激。由於

public interface Intset { 

    public abstract boolean isElem (int a) 

} 
+4

什麼是你的問題? – 2011-05-13 14:19:33

+3

您忘記了方法聲明結尾的';'。另外,「public」和「abstract」是可選的。 Intset和IntSet是兩個不同的名字。否則就沒關係。 – Bolo 2011-05-13 14:20:13

+2

你有一個小錯字:問題要求'IntSet',但你定義了'Intset'。 – 2011-05-13 14:20:18

回答

4

正確的解決方法是:

public interface IntSet { 

    public abstract boolean isElem (int a); 

} 

你忘了;在方法定義的末尾,並且在類名中有一個小的拼寫錯誤。

請注意,在這種情況下,關鍵字publicabstract是可選的並且不鼓勵。

+1

解決方案是正確的,但根據JLS不鼓勵多餘的修飾符'public'和'abstract'。 – 2011-05-13 14:29:12

+0

你確定他們不鼓勵,不僅是可選的嗎? – RoflcoptrException 2011-05-13 14:30:15

+1

可選和不鼓勵。請參閱JLS的第9.4節。 – 2011-05-13 14:31:06

1

除了後面的分號,你已經完成了這個問題。

public interface Intset { 

    public abstract boolean isElem (int a); 

} 
-1
public interface IntSet{ 
    bool isElem(int val); 
} 
+0

布爾?應該是boolean – amit 2011-05-13 14:24:22

+0

我的錯誤,錯過了它被標記在java下。在C#中正常工作,欣賞投票。 – 2011-05-13 16:57:11

0

由於接口的每一個方法是通過默認的公共和抽象

public interface IntSet { 
    boolean isElem (int a); 
} 

我會放棄從代碼中public abstract。你很少看到這一點,因爲它是多餘的。

從Java語言規範,Section 9.4

在接口的主體 每個方法聲明是隱含 抽象,所以其體總是由分號,而不是一個塊來表示。

接口正文中的每個方法聲明都是隱含的公開的 。

和語法:

InterfaceMemberDeclaration: 
    ConstantDeclaration 
    AbstractMethodDeclaration 
    ClassDeclaration 
    InterfaceDeclaration 
    ; 

也表明在接口中聲明的所有方法都是抽象的。

1

你忘了寫;和接口中的方法都默認pulbic和抽象所以

你可以寫

public interface IntSet{ 
    boolean isElem(int val); 
} 

public interface IntSet{ 
    public abstract boolean isElem(int val); 
}