Problem mit Erweitertem Klassenkonzept (Vererbung)

MagicMoskito

Mitglied
Hallo und nen schönen euch allen,
ich bin ein Jave Neuling und habe zugleich ein Problem wie im Titel schon beschrieben ist.Ich habe mir zum einstieg ein Buch gekauft,der Titel oder Verlag sei ausser acht gelassen.Nun habe ich ein Problem beim Kompilieren meines selbstgeschriebenen oder Beispiel des Buches genannten Java Codes.
Ich bin am verzweifeln,weil ich schon sehr viel versucht habe und es einfach nicht hinbekomme.
Hier mal mein Versuch:
Java:
public class Person {
	//Eigenschaften einer Person:
	public String name;
	public int alter;
}
Dieser Java Code war so im Buch beschrieben und habe ich auch so unter Person.java gespeichert und kompiliert (ohne Probleme, auch im Ordner in dem ich die Vererbung oder erweitertes Kalssenkonzept versuche).

Der zweite Java Code in dem ich versuche zu Vererben mittels extends-Tag lautet:
Java:
public class Spieler extends Person{
	//Zusätzliche Eigenschaften eines Spielers
	public int staerke;	// von 1 (schlecht) bis 10 (super)
	public int torschuss;	// von 1 (schlecht) bis 10 (super)
	public int motivation;	// von 1 (schlecht) bis 10 (super)
	public int tore;
}
Wenn ich jetzt versuche den zweiten Java Code zu compilieren gibt es mir in der DOS-Box den Fehler aus:
Spieler.java:1: cannot find symbol
symbol: class Person
public class Spieler extends Person{
^
1 error

-Nun bitte ich euch mir zu helfen, und weil ich blutiger Anfänger bin in Java (nur Kentnisse in Html), nicht mit Fachbegriffen um euch zu schmeissen oder zu schmunzeln,und bedanke mich im voraus für eure kompetenten und hilfreichen Antworten
 

eRaaaa

Top Contributor
Also an dem Code ist nichts falsch der lässt sich so kompilieren. Der Fehler wird wohl daran liegen wie du versuchst zu kompilieren. Befindest du dich in dem Ordner wo die java-Dateien liegen beim Kompilieren? Bzw wie rufst du javac denn auf?
 
G

gman

Gast
Hast du den zweiten Code auch in einer Datei mit dem Namen "Spieler.java" gespeichert? Der
Dateiname muss immer dem Namen der öffentlichen Klasse ("public class ..") in der Datei
entsprechen.
 

MagicMoskito

Mitglied
Also ich habe die Java installierung und deren Pathes in den Umgebungsvariablen im System gemacht,und sie funktioneren auch tedellos die tools von Java,konnte ja den Person.java Code kompilieren so dass Person.class im Ordner ist.
Ich versuche die Spieler.java so zu kompilieren:
Start +R --> cmd --> mittels der richtigen Befehle,wechsel ich in die Ordner wo sich die Codes befinden.

Jetzt gebe ich folgendes ein:
--> javac Spieler.java
dann kommt die oben beschriebene Fehlermeldung
 

MagicMoskito

Mitglied
Ja es liegen Person.java + Person.class und die Spieler.java im gleichen Ordner,was mich wundert ist dass ich die Person.java anstandslos kompilieren konnte und die Spieler.java nicht
 

kirax

Bekanntes Mitglied
Da ist irgendwas faul...

Öffne die beiden .java Dateien mal (neu) in einem Editor und poste hier exakt was drinsteht.
 

MagicMoskito

Mitglied
hier die Person.java:
Java:
public class Person {
	//Eigenschaften einer Person:
	public String name;
	public int alter;
}

Hier die Spieler.java:
Java:
public class Spieler extends Person {
	//Zusätzliche Eigenschaften eines Spielers
	public int staerke;	// von 1 (schlecht) bis 10 (super)
	public int torschuss;	// von 1 (schlecht) bis 10 (super)
	public int motivation;	// von 1 (schlecht) bis 10 (super)
	public int tore;
}
 

kirax

Bekanntes Mitglied
Hm

also mit den beiden Dateien funktioniert das bei mir einwandfrei:

Code:
V:\>cd "Neuer Ordner"

V:\Neuer Ordner>dir
 Datenträger in Laufwerk V: ist Volume
 Volumeseriennummer: 8453-5CE0

 Verzeichnis von V:\Neuer Ordner

31.07.2010  12:17    <DIR>          .
31.07.2010  12:17    <DIR>          ..
31.07.2010  12:17               107 Person.java
31.07.2010  12:17               298 Spieler.java
               2 Datei(en),            405 Bytes
               2 Verzeichnis(se),  4.952.989.696 Bytes frei

V:\Neuer Ordner>javac Person.java

V:\Neuer Ordner>javac Spieler.java

V:\Neuer Ordner>dir
 Datenträger in Laufwerk V: ist Volume
 Volumeseriennummer: 8453-5CE0

 Verzeichnis von V:\Neuer Ordner

31.07.2010  12:19    <DIR>          .
31.07.2010  12:19    <DIR>          ..
31.07.2010  12:19               242 Person.class
31.07.2010  12:17               107 Person.java
31.07.2010  12:19               256 Spieler.class
31.07.2010  12:17               298 Spieler.java
               4 Datei(en),            903 Bytes
               2 Verzeichnis(se),  4.952.985.600 Bytes frei

V:\Neuer Ordner>

Hast du evtl. an der Person.java seit der Compilierung noch was geändert?
Probiere mal folgenden Befehl:
Code:
javac Person.java Spieler.java
 

MagicMoskito

Mitglied
Also erst mal ein riesiges Dankeschön an Dich kirax.
Gleichzeitig die frage an Dich was denn der Unterschied ist zwischen einer einzelnen konpilierung und einer kompilierung beider java dateien auf einmal?

Der Befehl den Du mir vorgeschlagen hattest --> javac Person.java Spieler.java hat einwandfrei funktioniert ohne eine Fehlerausgabe:applaus:
 

kirax

Bekanntes Mitglied
Eigentlich ist da kein Unterschied - die Ergebnisse von "beide auf einmal" und "jede für sich" sollten eigentlich gleich sein.
Es ist sogar so, dass du "javac Spieler.java" ausführen können müsstest, ohne vorher Person.java compiliert zu haben. javac erkennt dann die Abhängigkeit und compiliert zuerst Person.java (es kommen also beide .class Dateien raus).
Code:
V:\Neuer Ordner>dir
 Datenträger in Laufwerk V: ist Volume
 Volumeseriennummer: 8453-5CE0

 Verzeichnis von V:\Neuer Ordner

31.07.2010  12:34    <DIR>          .
31.07.2010  12:34    <DIR>          ..
31.07.2010  12:17               107 Person.java
31.07.2010  12:17               298 Spieler.java
               2 Datei(en),            405 Bytes
               2 Verzeichnis(se),  4.952.985.600 Bytes frei

V:\Neuer Ordner>javac Spieler.java

V:\Neuer Ordner>dir
 Datenträger in Laufwerk V: ist Volume
 Volumeseriennummer: 8453-5CE0

 Verzeichnis von V:\Neuer Ordner

31.07.2010  12:34    <DIR>          .
31.07.2010  12:34    <DIR>          ..
31.07.2010  12:34               242 Person.class
31.07.2010  12:17               107 Person.java
31.07.2010  12:34               256 Spieler.class
31.07.2010  12:17               298 Spieler.java
               4 Datei(en),            903 Bytes
               2 Verzeichnis(se),  4.952.985.600 Bytes frei

V:\Neuer Ordner>
Das macht er natürlich nur, wenn Person.class nicht existiert.

Ich weiß nicht, was da falsch lief - könnte mir höchstens vorstellen, dass die Sourcedatei von deiner Person.class anders war als die "aktuelle" Person.java (wenn ich dich richtig verstanden hab, hast du ja die Person.class nicht nochmal compiliert) und du also irgendwelche Änderungen an der Person.java vorgenommen hast, von der die Person.class natürlich nichts mitbekommen hat. Liegt Person.class nämlich beim Compilieren von Spieler.java vor, wird die Person.java vom Compiler nicht angefasst - und dann kann da drinstehen was will ;)
 

MagicMoskito

Mitglied
Also ich habe den Schritt zurück gemacht und die beiden Klassen gelöscht Person.class + Spieler.class
und habe versucht Spieler.java zu kompilieren,und es gab mir den gleichen Fehler wieder aus.Ging also nicht zu kompilieren.
Dann habe ich so wie du mir gesagt hast --> javac Person.java Spieler.java eingegeben und er hat mir beide kompiliert ohne einen fehler auszugeben.

Ich kann mir nicht vorstellen wo der Fehler liegen kann oder soll???:L
 

MagicMoskito

Mitglied
Ja dass verwende ich,update immer sobald ne neue Version rauskommt.

1.Kann es denn sein dass ich vielleicht einen Path in den Umgebungsvariabeln im System falsch gesetzt habe? (was ich nicht glaube,da sonst auch eine einzelne kompilierung nicht gehen würde)

2. was ich jetzt grade gesehen habe ist,dass der Fehler den er mir im DOS angezeigt hat :
Spieler.java:1: cannot find symbol
symbol: class Person
public class Spieler extends Person {
^
1 error

Wobei dieses ^ immer unter dem P steht ,also habe ich es schon probiert die Person.java mit klein p zu benennen,hat aber auch kein Erfolg gebracht.Oder sehe ich es falsch, dass ^=gar keine Fehler anzeigt?
 

Landei

Top Contributor
Ich glaube, du musst einfach
Code:
javac -cp . DeineKlasse.java
schreiben. Der Pfad wo man gerade ist wird nicht automatisch bei der Suche mit eingeschlossen, man muss ihn explizit angeben (das ist der Punkt).
 

MagicMoskito

Mitglied
:toll: Dankeschön vielmals an Dich landei :applaus: ich habe es mit Deinem Lösungsvorschlag oder beschreibung versucht.

javac -cp . MeineJava.java eingabe im Dos gemacht und siehe da er kompiliert fehlerlos


Tausend dank und ne Verbeugung an Dich
 

MagicMoskito

Mitglied
eRaaaa
ja genau das ist ja das Problem, hänge noch .; davor/dran wie auch immer

was dran hängen . oder ; und wo dran hängen?Stehe ich etwa aufm schlauch?oder bin ich so unwissend?
 

kirax

Bekanntes Mitglied
Ja ich hab . im Classpath.
Code:
CLASSPATH=.;C:\Program Files (x86)\Java\jre6\lib\ext\QTJava.zip
Aber das sollte da standardmäßig drin sein, weil ich an der Variable nie was geändert habe ;)

. bezieht sich auf das aktuelle Verzeichnis. Damit javac das aktuelle Verzeichnis automatisch einbezieht muss . im Classpath stehen.

MagicMoskito gib mal folgendes in der Konsole ein:
Code:
set CLASSPATH=%CLASSPATH%;.

Dann wird dein Classpath um . erweitert.

Aber wundert mich trotzdem warum das nicht standardmäßig drinsteht bei dir ;)
 

petterapamm

Aktives Mitglied
Ich würde dir trotzdem zu einem Codeeditor raten mit dem du deinen Code auch gleich kompilieren kannst. Das lohnt sich auf jedenfall. Geht tausendmal schneller und es ist auch zum Coden als der herrkömliche Editor.
Ich selber benutze BlueJ aber da ich auch eher ahnungloser Anfänger bin, solltest du dich lieber selber schlau machen welcher gut ist.

MfG
petter
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
K Verständnis Problem bei Server/Client Java Basics - Anfänger-Themen 2
I WildFily - unterschiedliche Libs im Projekt verursachen Problem Java Basics - Anfänger-Themen 11
imocode Vererbung Problem mit Vererbung Java Basics - Anfänger-Themen 2
L Taschenrechner Problem Java Basics - Anfänger-Themen 4
I Applikationsserver (WildFly) - Zugriff auf Ressourcen.. Problem mit Pfade Java Basics - Anfänger-Themen 10
A ScheduledExecutorService problem Java Basics - Anfänger-Themen 7
marcelnedza Problem mit Weltzuweisung, JavaKarol Java Basics - Anfänger-Themen 13
XWing Methoden rückgabe Problem? Java Basics - Anfänger-Themen 6
M Erste Schritte Collatz Problem max int Java Basics - Anfänger-Themen 3
M Problem bei verschachtelter for-Schleife bei zweidimensionalen Arrays Java Basics - Anfänger-Themen 3
C GLOOP Problem beim Erstellen der Kamera Java Basics - Anfänger-Themen 9
nelsonmandela Problem bei Ausgabe einer Switch - Case Funktion Java Basics - Anfänger-Themen 5
frager2345 Problem mit Methode Java Basics - Anfänger-Themen 4
L Problem bei Rechnung mit Math.pow Java Basics - Anfänger-Themen 13
A Thread-Schreibe-Lese-Problem Java Basics - Anfänger-Themen 4
SUPERTJB return Problem Java Basics - Anfänger-Themen 3
sserio BigInteger Problem Java Basics - Anfänger-Themen 4
JordenJost Taschenrechner problem Java Basics - Anfänger-Themen 5
K Problem mit "Random" Java Basics - Anfänger-Themen 5
S Datei anlegen Problem! Groß- und Kleinschreibung wird nicht unterschieden Java Basics - Anfänger-Themen 4
sserio Problem beim Anzeigen Java Basics - Anfänger-Themen 5
xanxk Problem For-Schleife mit Charakter Java Basics - Anfänger-Themen 2
L Unbekanntes Problem mit 2d Array Java Basics - Anfänger-Themen 6
sserio Liste erstellt und ein Problem mit dem Index Java Basics - Anfänger-Themen 8
sserio Schwimmen als Spiel. Problem mit to String/ generate a card Java Basics - Anfänger-Themen 4
J Schleife Problem Java Basics - Anfänger-Themen 2
D Problem mit der Erkennung von \n Java Basics - Anfänger-Themen 2
milan123 das ist meine aufgabe ich hab das problem das bei mir Wenn ich die Richtung der Linien verändern will und drei davon sind richtig, verändere ich die 4 Java Basics - Anfänger-Themen 3
M Verständins Problem bei Aufgabe Java Basics - Anfänger-Themen 4
HeiTim Problem mit der Kommasetzung an der richtigen stelle Java Basics - Anfänger-Themen 59
Temsky34 Problem mit dem Code Java Basics - Anfänger-Themen 17
P Problem mit Calendar.getDisplayName() Java Basics - Anfänger-Themen 8
C Problem mit mehreren Methoden + Scanner Java Basics - Anfänger-Themen 5
P Datei einlesen, nach Begriff filtern und in Datei ausgeben. Problem Standardausgabe über Konsole Java Basics - Anfänger-Themen 19
M Problem mit Klassenverständnis und Button Java Basics - Anfänger-Themen 8
EchtKeineAhnungManchmal hallo habe ein Problem mit einer Datei -> (Zugriff verweigert) Java Basics - Anfänger-Themen 4
H Problem mit Verzweigungen Java Basics - Anfänger-Themen 6
H Problem mit Rückgabewert Java Basics - Anfänger-Themen 7
josfe1234 JAVA FX problem Java Basics - Anfänger-Themen 3
A Code Problem Java Basics - Anfänger-Themen 6
Henri Problem von Typen Java Basics - Anfänger-Themen 7
J Problem mit "ArrayIndexOutOfBoundsException" Java Basics - Anfänger-Themen 11
K jackson Mapping - Problem mit Zeitzonen Java Basics - Anfänger-Themen 10
B Threads Problem mit mehreren Threads Java Basics - Anfänger-Themen 38
I Output BigDecimal anstatt double / Problem beim Rechnen Java Basics - Anfänger-Themen 16
D Schleifen Problem Java Basics - Anfänger-Themen 2
H So viele Fehlermeldungen, dass ich nicht weiß wo das Problem ist. Java Basics - Anfänger-Themen 6
J JAVA-Problem blockiert MEDIATHEKVIEW Java Basics - Anfänger-Themen 13
T Problem mit Lehrzeichen und String bei einfacher Chiffre Java Basics - Anfänger-Themen 8
J extends Problem Java Basics - Anfänger-Themen 2
C Polymorphie-Problem Java Basics - Anfänger-Themen 3
Kalibru Problem bei Ausgabe von Objekt Java Basics - Anfänger-Themen 1
I Format Problem mit Wert - bekomme 0,10 anstatt 10,00 Java Basics - Anfänger-Themen 6
J Problem mit einer Methode die gewissen Inhalt einer Array löschen soll Java Basics - Anfänger-Themen 9
J Problem mit einer Methode, die beliebig viele Objekte in Array speichern soll Java Basics - Anfänger-Themen 6
J Allgemeines Problem mit Klassen Java Basics - Anfänger-Themen 5
U Problem mit dem initialisieren meines Strings in einer Schleife Java Basics - Anfänger-Themen 5
amgadalghabra algorithmisches Problem Java Basics - Anfänger-Themen 19
J Traveling Salesman Problem [Arrays] Java Basics - Anfänger-Themen 9
R ArrayList Problem Java Basics - Anfänger-Themen 6
InfinityDE Problem mit Datenübergabe an Konstruktor Java Basics - Anfänger-Themen 7
C RegEx Problem Java Basics - Anfänger-Themen 4
J Anfänger TicTacToe, Problem bei Gewinnoption, sowohl Unentschieden Java Basics - Anfänger-Themen 8
E Taschenrechner GUI Problem mit Fehlerhandling Java Basics - Anfänger-Themen 6
M Input/Output Fallunterscheidung Problem Java Basics - Anfänger-Themen 17
P Problem beim Überschreiben einer vererbten Methode Java Basics - Anfänger-Themen 4
M Problem bei Ausgabe Java Basics - Anfänger-Themen 7
Splayfer Java Array Problem... Java Basics - Anfänger-Themen 2
G Problem bei der Ausgabe einer Main Claase Java Basics - Anfänger-Themen 7
F Problem mit KeyListener in kombination mit dem ActionListener Java Basics - Anfänger-Themen 4
G Subset sum problem mit Backtracking Java Basics - Anfänger-Themen 18
N Problem mit Scanner Java Basics - Anfänger-Themen 2
J Klassen Problem Java Basics - Anfänger-Themen 8
A Out.format problem. Java Basics - Anfänger-Themen 3
J Problem bei der Programmierung eines Tannenbaums Java Basics - Anfänger-Themen 9
A Array problem Java Basics - Anfänger-Themen 16
2 Taschenrechner mit GUI Problem bei der Berechnung Java Basics - Anfänger-Themen 8
W Remote Method Invocation RMI - Problem Java Basics - Anfänger-Themen 0
I Ich habe ein Problem Java Basics - Anfänger-Themen 3
A Problem bei returnen eines Wertes Java Basics - Anfänger-Themen 6
M Regex Erstellung Problem Java Basics - Anfänger-Themen 2
D Input/Output Problem bei der Benutzereingabe eines Befehls Java Basics - Anfänger-Themen 14
M (Sehr großes Problem) Listen als static in anderen Klassen verwendet Java Basics - Anfänger-Themen 12
F Habe ein problem mit dem ActionListener Java Basics - Anfänger-Themen 3
C Regex-Problem Java Basics - Anfänger-Themen 4
J Problem beim vergleich von zwei Integer Java Basics - Anfänger-Themen 3
M Problem in der Modellierung Java Basics - Anfänger-Themen 20
W Wo ist das URL-Problem ? Java Basics - Anfänger-Themen 1
S Generics-Problem: Class, Class<?>, Class<Object> Java Basics - Anfänger-Themen 4
D FileWriter / FileReader Problem Java Basics - Anfänger-Themen 10
G Problem beim Speichern von Objekten in einer Datei Java Basics - Anfänger-Themen 7
S Compiler-Fehler Exception in thread "main" java.lang.Error: Unresolved compilation problem: Java Basics - Anfänger-Themen 6
J Problem mit Array: 2 Klassen Java Basics - Anfänger-Themen 2
S Collections funktionale Listen (ListNode<E>) review und problem beim clone Java Basics - Anfänger-Themen 0
W OOP Vererbung und Problem bei Zählschleife in einer Methode Java Basics - Anfänger-Themen 10
C Problem mit If Else If und Überprüfung eines Counters Java Basics - Anfänger-Themen 3
F Problem mit Listen Java Basics - Anfänger-Themen 5
I wieder mit einer Umwandelung habe ich Problem (diesmal von char Array zu char) Java Basics - Anfänger-Themen 1
J Problem bei Umrechnung von Hex in Bin Java Basics - Anfänger-Themen 4
W Problem bei Programmierung von Monte-Carlo-Integration Java Basics - Anfänger-Themen 12

Ähnliche Java Themen

Neue Themen


Oben