cookiemen - 36
Fortgeschrittener
(offline)
Dabei seit 11.2008
71
Beiträge
|
|
Geschrieben am: 22.04.2010 um 18:43 Uhr
|
|
Hey ; )
ich hab erst angefangen mit java programmieren^^
und im mom hab ich bei so ner übung n problem..
ich hoff ihr könnt mir helfen ; )
ich hab 2 quelltexte...:
package fahrzeug;
abstract class StrassenFzg {
protected String bez;
protected short geschw;
protected boolean verliehen;
abstract boolean eingeben();
abstract boolean anzeigen();
public boolean verleihen() {
if (verliehen)
return false;
else {
verliehen = true;
return true;
}
}
}
diese ist unter "fahrzeug" abgespeichert.
die zweite hier unter "Auto"....:
package fahrzeug;
import java.util.Scanner;
public class Auto extends StrassenFzg {
public short plaetze;
public boolean eingeben() {
Scanner eingabe = new Scanner (System.in);
try {
System.out.print("Bezeichnung: ");
bez = eingabe.nextLine();
System.out.print("Sitzplaetze: ");
plaetze = eingabe.nextShort();
System.out.print("Geschwindigkeit");
geschw = eingabe.nextShort();
return true;
} catch (Exception e) {
System.out.println(e);
return false;
}
}
public boolean anzeigen() {
System.out.println("\nDas Auto ist ein " + bez);
System.out.println("Es hat " + plaetze + " Sitze");
System.out.println("Der Top-Speed: " + geschw);
if (verliehen) {
System.out.println("Es ist verliehen.");
} else {
System.out.println("Es ist nicht " + "verliehen.");
}
return true;
}
}
so des problem liegt jetzt darin...der erste code wird ohne fehler kompiliert.
wenn ich den zweiten kompilieren will krieg ich folgende fehlermeldung:
Auto.java:5: cannot find symbol
symbol: class StrassenFzg
public class Auto extends StrassenFzg {
^
Auto.java:14: cannot find symbol
symbol : variable bez
location: class fahrzeug.Auto
bez = eingabe.nextLine();
^
Auto.java:18: cannot find symbol
symbol : variable geschw
location: class fahrzeug.Auto
geschw = eingabe.nextShort();
^
Auto.java:27: cannot find symbol
symbol : variable bez
location: class fahrzeug.Auto
System.out.println("\nDas Auto ist ein " + bez);
^
Auto.java:29: cannot find symbol
symbol : variable geschw
location: class fahrzeug.Auto
System.out.println("Der Top-Speed: " + geschw);
^
Auto.java:30: cannot find symbol
symbol : variable verliehen
location: class fahrzeug.Auto
if (verliehen) {
^
6 errors
hat jemand n plan woran des liegt? ; )
danke schonmal ; )
mfg
|
|
scw - 42
Experte
(offline)
Dabei seit 09.2002
1836
Beiträge
|
Geschrieben am: 22.04.2010 um 18:57 Uhr
Zuletzt editiert am: 22.04.2010 um 18:58 Uhr
|
|
Die Zeiten, als ich händisch auf der Console sowas kompiliert habe liegen schon länger zurück... müsste ich jetzt selber erst wieder ausprobieren.
Würde dir aber empfehlen, eine IDE für Java zu verwenden. Damit hast du die Probleme nicht. Eclipse wäre zu empfehlen und ist sogar kostenlos
|
|
scw - 42
Experte
(offline)
Dabei seit 09.2002
1836
Beiträge
|
|
Geschrieben am: 22.04.2010 um 19:01 Uhr
|
|
Wie kompilierst du?
Versuch mal beim kompilieren beide Sourcefiles anzugeben.
Vermutlich bekommst du deshalb eine Fehlermeldung weil er die zuvor erzeugte .class Datei nicht findet. Gibt sicherlich auch eine Option, mit der du angeben kannst, wo er die erzeugten .class Files ablegen soll und wo er danach suchen soll wenn du eine als Abhängigkeit benötigst.
|
|
cookiemen - 36
Fortgeschrittener
(offline)
Dabei seit 11.2008
71
Beiträge
|
|
Geschrieben am: 22.04.2010 um 19:11 Uhr
|
|
also ich hab des jetzt mal so kompiliert
\javac fahrzeug.java Auto.java
und da hat der mir auch ne Auto.class ausgegeben ; )
|
|
onkelrico - 46
Halbprofi
(offline)
Dabei seit 10.2007
239
Beiträge
|
|
Geschrieben am: 22.04.2010 um 19:40 Uhr
|
|
Zitat von cookiemen: also ich hab des jetzt mal so kompiliert
\javac fahrzeug.java Auto.java
und da hat der mir auch ne Auto.class ausgegeben ; )
Der Dateinamen muss (case sensitive) dem Klassennamen entsprechen. Also nicht "fahrzeug.java", sondern "StrassenFzg.java"
Dick Laurent is dead.
|
|
cookiemen - 36
Fortgeschrittener
(offline)
Dabei seit 11.2008
71
Beiträge
|
|
Geschrieben am: 22.04.2010 um 19:56 Uhr
|
|
ja schon...nur des ändert nichts...xD
es hat mir ja ne Auto.class gegeben...und jetzt hab ich davon auch ne AutoTest.class
erzeugt...mit dem quelltext hier...
nur des ganze auszuführen funktioniert nich?
import fahrzeug.Auto;
public class AutoTest {
public static void main(String[] argumente) {
Auto einAuto;
einAuto = new Auto();
if (einAuto.eingeben() )
einAuto.anzeigen();
else
System.out.println("Fehlerhafte Eingabe!");
}
}
|
|
onkelrico - 46
Halbprofi
(offline)
Dabei seit 10.2007
239
Beiträge
|
|
Geschrieben am: 22.04.2010 um 20:06 Uhr
|
|
Bleiben wir bei Deinem Eingangsbeispiel:
Hast Du sichergestellt, dass beide java Sourcefiles in einem Ordner namens "fahrzeuge" liegen? So schaut die Package-Konvention in Java aus.
Dick Laurent is dead.
|
|
cookiemen - 36
Fortgeschrittener
(offline)
Dabei seit 11.2008
71
Beiträge
|
|
Geschrieben am: 22.04.2010 um 20:24 Uhr
|
|
ja beide dateien liegen im selben ordner ; )
|
|
onkelrico - 46
Halbprofi
(offline)
Dabei seit 10.2007
239
Beiträge
|
|
Geschrieben am: 22.04.2010 um 21:29 Uhr
|
|
Zitat von cookiemen: ja beide dateien liegen im selben ordner ; )
Irgendwie glaub ich das erst, wenn ich das sehe. ;)
Kannst Du folgende Konsolenausgaben mal hier vollständig posten?
"dir" im package-Verzeichnis
und
"javac -version"
Dick Laurent is dead.
|
|
cookiemen - 36
Fortgeschrittener
(offline)
Dabei seit 11.2008
71
Beiträge
|
|
Geschrieben am: 22.04.2010 um 21:56 Uhr
|
|
Verzeichnis von C:\fahrzeug
22.04.2010 20:26 <DIR> .
22.04.2010 20:26 <DIR> ..
22.04.2010 20:23 1.522 Auto.class
22.04.2010 20:22 887 Auto.java
22.04.2010 20:23 442 StrassenFzg.class
22.04.2010 20:22 326 StrassenFzg.java
4 Datei(en) 3.177 Bytes
2 Verzeichnis(se), 51.759.575.040 Bytes frei
C:\fahrzeug>javac -version
javac 1.6.0_19
C:\fahrzeug>
glaubst du des jetzt? xD
|
|
onkelrico - 46
Halbprofi
(offline)
Dabei seit 10.2007
239
Beiträge
|
|
Geschrieben am: 22.04.2010 um 22:06 Uhr
|
|
Da hast Du doch alle beiden Classes?
Dick Laurent is dead.
|
|
cookiemen - 36
Fortgeschrittener
(offline)
Dabei seit 11.2008
71
Beiträge
|
|
Geschrieben am: 22.04.2010 um 22:08 Uhr
|
|
ja die klasse schon nur ausführen kann ich die auto.class nicht..
und wenn ich jetzt des objekt erzeug funktioniert des eben nicht...^^
|
|
onkelrico - 46
Halbprofi
(offline)
Dabei seit 10.2007
239
Beiträge
|
Geschrieben am: 22.04.2010 um 22:33 Uhr
Zuletzt editiert am: 22.04.2010 um 22:36 Uhr
|
|
Zitat von cookiemen: ja die klasse schon nur ausführen kann ich die auto.class nicht..
und wenn ich jetzt des objekt erzeug funktioniert des eben nicht...^^
...weil Du dort eine main()-Methode brauchst.
Edit:
Jetzt hab ich den Zusammenhang erstmal mit Deiner AutoTest geschnallt. Bei mir dauerts heute auch wat länger. ;)
Wie schaut denn die Verzeichnisstruktur jetzt mit der Klasse aus?
Dick Laurent is dead.
|
|
cookiemen - 36
Fortgeschrittener
(offline)
Dabei seit 11.2008
71
Beiträge
|
|
Geschrieben am: 22.04.2010 um 22:53 Uhr
|
|
wo brauch ich ne main methode?
ehm... die autotest ist ne ebene drüber..
also..
C:\fahrzeug\auto\autotest
und die anderen zwei eben in auto^^
|
|
onkelrico - 46
Halbprofi
(offline)
Dabei seit 10.2007
239
Beiträge
|
|
Geschrieben am: 23.04.2010 um 06:51 Uhr
|
|
Zitat von cookiemen: wo brauch ich ne main methode?
ehm... die autotest ist ne ebene drüber..
also..
C:\fahrzeug\auto\autotest
und die anderen zwei eben in auto^^
Die Main Methode wird beim Aufruf von "java ..." aufgerufen, die hast Du ja in der AutoTest.
Wenn die jetzt so abgelegt sind:
\AutoTest.java
\fahrzeug\StrassenFzg.java
\fahrzeug\Auto.java
...sollte das eigentlich tun. Du brauchst mit javac nur die AutoTest.java kompilieren. Da jene das fahrzeug-Package importiert, werden die beiden Klassen gleich mitkompiliert.
Wenn es das nicht tut, dann wäre mal eine Fehlermeldung nicht schlecht.
Dick Laurent is dead.
|
|
cookiemen - 36
Fortgeschrittener
(offline)
Dabei seit 11.2008
71
Beiträge
|
|
Geschrieben am: 25.04.2010 um 16:08 Uhr
|
|
dankeschön hat funktioniert ; )
|
|