2016-11-26 17 views
-1

私は自分自身でJavaを学習しています。この興味深い例題をクロスにしました。Javaの同じパッケージの重複クラス

私が知りたいのは、同じパッケージの下に複数のクラスがあり、それらのすべてがオーバーラップしているときに、これがJavaで呼び出されるものです。以下の例を見てください。どのクラスもimplements、interface、abstract、extendsなどを使用していないことに注意してください。

そして、これらの例をもっと見つけられますか?

クラスフライトプラン

public class Flightplan { 
    String type; 
    int seat; 
    String from; 
    String to; 
     // Other local variables, style captain ... 
    Person[] passenger; 
    int counter = 0; 

    Flightplan (String t, int s, String startPlace, String d) { 
     type = t; 
     seat = s; 
     passenger = new Person [s-1]; // kapten tar ett säte 
      // Captain takes a seat 
     from = startPlace; 
     to = d; 
    } 

    void book (Person p, String f, String t) { 
     if (f.equals(from) && t.equals(to)) { 
      passenger[counter] = p; 
      to = t; 
      counter++; 
     } 
       else System.out.println(p.name + " try to book a wrong flight !"); 
    } 

    void flyg() { 
     System.out.println("On the plane " + this.typ + " reser"); 
     for (int i = 0; i < passenger.length && passenger[i] != null; i++) { 
      System.out.println(passenger[i].name + ", "); 
     } 
     System.out.println("\n"); 
     from = to; 
    } 

} 

クラスPerson

public class Person { 
    String name; 
    String from; 
    String to; 
    String stopover; 
    int bags; 
    Flightplan flight; 

    Person (String n, String f, String m, String t, int v) { 
     name = n; 
     from = f; 
     stopover = m; // Only one stopover is approved, otherwise we would enter this as an array 
     to = t; 
     bags = v; 
    } 

    void boardNextLeg(Flightplan plan) { 
     flight = plan; 

// Function bar for a stopover due. if-kit building 
     if (!stopover.equals(null) && flight.from.equals(this.from) && flight.to.equals(this.stopover)) { 
      System.out.print(this.name + " is now in between"); 
      System.out.println(from + " and " + stopover); 
      flight.book(this, from, stopover); 
     } 
     else if (flight.from.equals(this.from) && flight.to.equals(this.to)) { 
      System.out.println(from + " och " + to); 
      flight.book(this, from, to); 
     } 

       else System.out.println(this.name + " could not be booked on a flight"); 
    } 


} 

答えて

0

これは循環依存関係と呼ばれている、むしろこれは、重複ではありませんあなたFlightplanPersonは悪いデザインと不十分に開発された、互いに依存しているため。

基本的に循環依存関係は、正しく使用されないと、多くの問題(例えば、OutofMemoryError)が発生するため、クラス/パッケージ間で回避する必要があります。

円の依存関係の詳細については、hereを参照してください。

+0

あなたは私の時間の多くを保存しました。ありがとうございました。 –

0

あなたは、彼らが同じ名前のメンバ変数を持っていることを意味重ね合わせて?各クラスにはメンバ変数のリストがあり、あるクラスは別のクラスに制限を与えません。

は、私は、これは、「いくつかのクラスという同様のデータ値と各取引」と呼ばれていると思いますが、それらのすべてが重複している同じパッケージの下 いくつかのクラスを持っている場合、これはJavaで呼ばれるもの

関連する問題