2016-05-26 8 views
-2

次のエラーを実装内のシンボルを見つけることができない私は、私のJavaクラスをコンパイルした示した。Javaコンパイル・エラーは、インターフェース

Radius.java:27: error: cannot find symbol
public class Radius implements B,C
^ symbol: class B
Radius.java:27: error: cannot find symbol
public class Radius implements B,C
^ symbol: class C
2 errors

問題のJavaクラス:

class A 
{ 
    int radius; 
    interface B 
    { 
     public String displayRadius(); 
    } 

    interface C 
    { 
     public String displayArea(); 
    } 

    public void displayRadius() 
    { 
     radius=2; 
     System.out.println("Radius : "+radius); 
    } 

    public void displayArea() 
    { 
     double area; 
     area=3.14*radius*radius; 
     System.out.println("Area :"+area); 
    } 
} 

public class Radius implements B,C 
{ 
    public static void main(String args[]) 
    { 
     A ob=new A(); 
     ob.displayRadius(); 
     ob.displayArea(); 
    } 
} 

問題は何ですか?

+0

あなたは、少なくともいくつかの情報を追加してもらえますか?または少なくともあなたの問題を紹介しますか? –

+0

BとCはAの中にネストされています。A.BとA.Cとして参照しようとします。次の問題は可視性です。パブリッククラスRadiusでBとCを使用する場合は、Aはパブリックである必要があります。 – csharpfolk

答えて

2

インターフェイスは、Aクラスにネストされているため、直接アクセスできません。代わりにこれを使用します。

public class Radius implements A.B, A.C 

だから、全体のコードは次のようになります。

class Radius implements A.B, A.C { 
    public static void main(String args[]) { 
     A ob = new A(); 
     ob.displayRadius(); 
     ob.displayArea(); 
    } 

    @Override 
    public String displayArea() { 
     // TODO Auto-generated method stub 
     return null; 
    } 

    @Override 
    public String displayRadius() { 
     // TODO Auto-generated method stub 
     return null; 
    } 
} 

class A { 
    int radius; 

    interface B { 
     public String displayRadius(); 
    } 

    interface C { 
     public String displayArea(); 
    } 

    public void displayRadius() { 
     radius = 2; 
     System.out.println("Radius : " + radius); 
    } 

    public void displayArea() { 
     double area; 
     area = 3.14 * radius * radius; 
     System.out.println("Area :" + area); 
    } 
} 
関連する問題