Błąd kompilacji Java nie może znaleźć symbolu
Błąd kompilacji Java nie może znaleźć symbolu
Kwestia
Proszę o twoją pomoc. Zrobiłem mały program w automatycznych częściach zarządzania java, który składa się z 6 klas (jedno dziedziczenie):
Klasa-abstrakcyjna klasa (superklasa);
Dwie klasy będące rozszerzeniem klasy Piece:
- PieceDeBase;
- PieceComposite (klasa abstrakcyjna);
Dwie klasy będące rozszerzeniem klasy PieceComposite:
- PieceCompositeEnKit;
- PieceAssemblee;
Klasa-MainPiece, która jest aplikacją wszystkich tych 5 klas.
6 klas znajduje się w tym samym katalogu Pieces.
Kiedy kompiluję superklasę Kawałek, tak dobrze, nie mam błędów. Dzięki kompilacjom podklas otrzymuję komunikat o błędzie:
PieceDeBase.java: 7: nie można znaleźć symbolu symbolu: klasa klasy publicznej Piece Piece PieceDeBase rozszerza PieceDeBase.java ^: 37: nie może znaleźć symbolu symbolu: zmienna super lokalizacja: klasa {return Prog.Pieces.PieceDeBase super.toString () + „- -Basic”;}
To jedyne błędy, które mam dla wszystkich moich zajęć.
Oto moja klasa Piece:
Kod: pakiet Prog.Pieces; import java.util. *; import java.io. *; publiczna abstrakcyjna klasa Piece {/ / Atrybuty --------------------- --------------------- ----------------------------- ----------- chroniona nazwa ciągu; protected String referenceDeBase / / Constructors ---------------------------- ---------------- ---------------------------------- Piece () {name = "unknown"; referenceDeBase = "000000";} Piece (String n, String r) {name = n; referenceDeBase = r;} / / Accessors ------------ ------------------------------ -------------------- ------------------- getNom public String () {return name;} public void setNom (String n) {name = n;} public String getReferenceDeBase () {return referenceDeBase;} public void setReferenceDeBase (String r) {r = referenceDeBase;} / / Inne metody ----------- -------------------- ------------------------------ --------------- public String toString () {return name + "" + getReferenceDeBase ();} abstract public float price (); streszczenie publicznych float dureeGarantie (); streszczenie publicznych float dureeFabrication (); abstrakcyjny publiczny prefiks String (); public String referenceDeBase () {return referenceDeBase;} public void display () {System.out.println ("Nazwa:" + getNom () + "n" + "Reference:" + referenceDeBase () + "n" + „Cena:” + cena () + ”euro (s) n" + "Gwarancja:" + dureeGarantie () + "miesiąc n" + "czas produkcji" dureeFabrication + () + "dzień (y) n" );} / / protected Part - ------------------------------------------ -------- ------------------------ afficheCommeComposants chronione String (int offset) {String Decale = "" dla (int i = 0; A oto moja klasa PieceDeBase (żeby wymienić tylko kilku z was): Pakiet Prog.Pieces; import java.util. *; import java.io. * public class extends PieceDeBase Piece {/ / Attributes ---------------------- ------------------ ------------------------- prywatna cena float; prywatny float dureeGarantie; private float dureeFabrication / / Konstruktorzy ------------------------------------------ - ----------------- PieceDeBase () {price = 0; dureeGarantie = 0; dureeFabrication = 0;} PieceDeBase (String n, String r, float p, float dg, float df) {super (n, r); cena = p; dureeGarantie = dg; dureeFabrication = df;} / / Accessors ----------------------- ------------------- ---------------------- public float getPrix () {cena powrotu; } public void setPrix (float p) {price = p;} public float getDureeGarantie () {return dureeGarantie;} public void setDureeGarantie (float dg) = dg {dureeGarantie;} public float getDureeFabrication () {return dureeFabrication;} public void setDureeFabrication; (float df) {df = dureeFabrication;} / / Inne metody ------------------------------------ ----------------------- public String toString () {return super.toString () + "- base";} public float price () {return cena;} public float dureeGarantie () {return dureeGarantie;} public float dureeFabrication () {return dureeFabrication;} public String prefix () {return "00" + super.reference ();}} Czy to błąd w mojej ścieżce klasy lub w moim kodzie? Naprawdę wszystko rozumiem, pomyślałem jeszcze o moim kodzie. Gdybyś mógł mi pomóc, byłbym bardzo wdzięczny. Pozdrowienia.Rozwiązanie
Nie było więc żadnego błędu w moim kodzie java, ale raczej komendy przez terminal.
Więc dla tych, którzy mają takie same błędy kompilacji w przypadku prostego dziedziczenia, musisz zbudować super klasy i podklasy jednocześnie i tylko raz:
javac SuperClasse.java SousClasse1.java SousClasse2.java
W moim przypadku było to:
javac Piece.java PieceDeBase.java PieceComposite.java PieceCompositeEnKit.java PieceAssemblee.java MainPiece.java
To dla mnie naprawdę dobrze i wszystko działa doskonale.
Uwaga
Rozwiązany przez mickeynada