Javaコンパイルエラーでシンボルが見つかりません

Javaコンパイルエラーでシンボルが見つかりません

問題

私はあなたの助けを求めます。 私は6つのクラス(単一継承)からなるJava管理自動車部品の小さなプログラムを作りました。

ピース - 抽象クラス(スーパークラス)。

クラスPieceの拡張である2クラス

  • PieceDeBase;
  • PieceComposite(abstractクラス);

PieceCompositeクラスの拡張である2クラス

  • PieceCompositeEnKit;
  • ワンピース

これら5つのクラスすべてを応用したクラスMainPieceです。

6つのクラスは同じディレクトリPiecesにあります。

スーパークラスのPieceをコンパイルしても、それでいいのですが、エラーはありません。 短所として、サブクラスをコンパイルすると、次のようなエラーが発生します。

PieceDeBase.java:7:シンボルsymbolを見つけることができません:class public class Piece PieceDeBaseはPieceDeBase.javaを拡張できます^:37:シンボルsymbolを見つけることができません:変数スーパーロケーション:クラス{return Prog.Pieces.PieceDeBase super.toString()+ " - - 基本";}

これらは私がすべてのクラスで持っている唯一のエラーです。

これが私のクラスのピースです。

コード:package Prog.Pieces。 import java.util。*; java.ioをインポートします。 *; パブリック抽象クラスPiece {/ / Attributes --------------------- --------------------- ----------------------------- -----------保護された文字列名。 protected String referenceDeBase / /コンストラクタ---------------------------- ---------------- ---------------------------------- Piece(){name = "unknown"; referenceDeBase = "000000";} Piece(String n、String r){name = n;} referenceDeBase = r;} / /アクセサ------------ ------------------------------ -------------------- ------------------- getNom public String(){return name;} public void setNom(String n){name = n;} public String getReferenceDeBase(){return referenceDeBase;} public void setReferenceDeBase(String r){r = referenceDeBase;} / /その他のメソッド----------- -------------------- ------------------------------ --------------- public String toString(){return name + "" + getReferenceDeBase();} abstract public float price(); 抽象パブリックフロートdureeGarantie(); 抽象パブリックフロートdureeFabrication(); abstract public String prefix(); public String referenceDeBase(){return referenceDeBase;} public void display(){System.out.println( "名前:" + getNom()+ "\ n" + "参照:" + referenceDeBase()+ "\ n" + "価格:" + price()+ "ユーロ\ n" + "保証:" + dureeGarantie()+ "month \ n" + "製造時間" duree製造+()+ "day(s)\ n"保護された部分 - ------------------------------------------ -------- ------------------------ afficheCommeComposants protected String(int offset){String Decale = "" for(int i =) 0; i

そして、ここに私のクラスPieceDeBaseがあります(あなたの何人かを名前を挙げて)。

Prog.Piecesパッケージ。 import java.util。*; java.ioをインポートします。 *パブリッククラスはPieceDeBase Piece {/ / Attributesを継承します---------------------- ------------------ -------------------------プライベートフロート価格。 プライベートフロートdureeGarantie。 private float duree製造/ /コンストラクタ------------------------------------------ - ----------------- PieceDeBase(){price = 0; dureeGarantie = 0。 PieceDeBase(文字列n、文字列r、フロートp、フロートdg、フロートdf){super(n、r); 価格= p; dureeGarantie = dg。 dureeFabrication = df;} / /アクセサ----------------------- ------------------- ---------------------- public float getPrix(){返品価格; public void setPrix(float p){price = p;} public float getDureeGarantie(){return dureeGarantie;} public void setDureeGarantie(float dg)= dg {dureeGarantie;} public float getDureeFabrication(){return dureeFabication;} public void setDureeFabication (float df){df = dureeFabrication;} / /その他の方法------------------------------------ ----------------------- public String toString(){return super.toString()+ " - base";} public float price(){return} public float dureeGarantie(){return dureeGarantie;} public float dureeFabrication(){return dureeFabrication;} public String prefix(){return "00" + super.reference();}}

これは私のクラスパスまたはコードの間違いですか?

私は本当に何でも理解しています、私はまだ私のコードを考えました。

あなたが私を助けることができれば私は非常に感謝するでしょう。

よろしく。

溶液

したがって、私のJavaコードにはエラーはありませんでしたが、端末を介したコマンドです。

単純な継承の場合に同じコンパイルエラーがある人のために、あなたは同時にそして一度だけあなたのスーパークラスとサブクラスを構築しなければなりません:

 javac SuperClasse.java SousClasse1.java SousClasse2.java 

私の場合は、

 javac Piece.java PieceDeBase.java PieceComposite.java PieceCompositeEnKit.java PieceAssemblee.java MainPiece.java 

それは、私にとっては本当にうまくいっていて、すべてが完璧に動作しています。

注意

mickeynadによって解決された

前の記事 次の記事

トップのヒント