2017-04-26 17 views
0

私は以前の質問に対して優れた応答を得ましたので、ここで私の運を押していきます。 これについて既に優れた記事がありますが、 What does a "Cannot find symbol" compilation error mean?私は、どの理由が当てはまるのか、その理由を見つけるのは難しいです。Inheritedクラスが見つかりません

ここでのエラーは、オブジェクトFirstClassTicketを、FirstClassを呼び出すequalsの前後の両方に作成するときに発生します。 FirstClassをTicketから継承したときにエラーが発生したと仮定します。これは、元々は、別のTicketタイプにインクルードし始める前に、これが元のTicketを実行していたからです。

class Booking{ 
    public static class Ticket{ 
     int Price; 
     int Amount=1; 
     int Discount=0; 
     public int WhatCost(){ 
      int Cost =Amount*(Price-Discount); 
      return Cost; 
     } 
     //Inheriting Ticket classes. 
    class FirstClass extends Ticket{ //Defines standard class tickets. 
     int Price =10; 
    } 

    } 
    public static void main(String args[]) { 
     FirstClass FirstClassTicket=new FirstClass(); 
     Scanner scanner = new Scanner(System.in); 
     System.out.println("Welcome to the advance booking service.");//Introduce program. 
     System.out.println("A first class ticket costs:"); 
     System.out.println(FirstClassTicket.WhatCost()); 
    } 
} 
+2

FirstClassをBookingの内部クラスとして定義しました。あなた自身の好意を持って、各クラスをJava標準に従って別々のファイルに定義してください。もちろん、あなたが実際に内部クラス(私は非常に疑う)を持っていない限り。関連資料:[Javaチュートリアル:ネストされたクラス](https://docs.oracle.com/javase/tutorial/java/javaOO/nested.html) –

+2

...または単に 'FirstClass'を' static'にしてください。 –

+0

さて、私はそれを見てみましょう。 'static class FirstClass extends Ticket {//標準クラスのチケットを定義します.''に変換しようとしても、エラーは変更されませんでした。 –

答えて

0

チケットの内部クラスとしてFirstClassを定義しました。 FirstClassを静的にして、以下のようにアクセスします。

Booking.Ticket.FirstClass FirstClassTicket=new Booking.Ticket.FirstClass(); 
関連する問題