Klasse importieren

Status
Nicht offen für weitere Antworten.

Scherer

Mitglied
Hallo,

die Frage wurde sicherlich schon etliche Male gestellt, aber in den ersten 30-40 Threads, die ich durchsucht habe, konnte ich keine Antwort finden.

Ich habe eine simple Klasse, die eine andere importieren soll, die im gleichen Verzeichnis liegt.

C:\test\Abc.java
C:\test\Abc.class
C:\test\Def.java
C:\test\Def.class

Im CLASSPATH ist C:\test vorhanden.


Nun möchte ich Klasse Def.class auch in Abc.class benutzen und schreibe...

Code:
import Def;

...woraufhin der Compiler gerne einen Punkt hinter Def möchte. Setze ich (sinnloserweise) den Punkt, kommt natürlich wieder ein Fehler, da ein Bezeichner erwartet wird. Auch bei der Schreibweise...

Code:
import Def.*;

...kommt ein "package does not exist" Fehler, den ich nachvollziehen kann, da Def ja kein Paket, sondern eine Klasse ist.

Habe auch versucht, beide Klassen in das gleiche Paket aufzunehmen, was nichts geändert hat.


Wie kriege ich nun aber die Klasse Def in die Abc importiert?
 
Klassen die in keinem Package sind kann man nicht importieren.
Wenn alle beteiligten Klassen in keinem Package liegen braucht man das auch nicht.
Dennoch solltest du grundsätzlich jede Klasse in ein Package machen, alles andere macht nur Probleme
 
Beide Klassen liegen in einem Verzeichnis, brauchen daher nicht importiert zu werden.
Wenn du aber in deinen Klassen Packages deklariert hast, musst du auch eine entsprechende Verzeichnisstruktur erzeugen, in welcher du die Klassen ablegst.
 
oder eclipse etc nehmen und dir die mühe sparen, da die das fast automatisch machen. :shock:
 
Juhu, hab's geschafft!

Habe nach euren Tipps die Package und Import Anweisungen rausgenommen und nun funktioniert alles.

Dennoch werd ich das Gefühl nicht los, dass ich genau dieses Szenario ganz am Anfang meiner Tests schon hatte und es eben nicht funktioniert hat. Dieses Gefühl hab ich beim Programmieren mit Java im Übrigen ständig... so manche Dinge dürften ruhig weniger kompliziert sein.


Auf jeden Fall danke für die Hinweise!!
 
Scherer hat gesagt.:
so manche Dinge dürften ruhig weniger kompliziert sein.
Jede IDE wird dir eine Warnung ausgeben das man das Default 'Package' nicht verwenden sollte und auch SUN sagt das klar.
Wenn du Ratschläge in den Wind schlägst ist das deine eigene Schuld.
 
Langsam, langsam, musst ja nicht gleich losattackieren...

Es ist richtig, dass überall alles mögliche geschrieben steht, aber ich vermisse oft eine gewisse Struktur, die einen Programmierer unterstützt. Java hat so etwas "riesiges", "unübersichtliches" und "chaotisches" an sich.

Und zum Verwenden von Java werde ich auch nicht gezwungen. Dennoch besteht meinerseits Interesse an Java, weswegen ich die Sprache auch gern benutzen möchte.

Ich lese momentan 2 Bücher über Java, aber keines der beiden (und auch kein Tutorial im Internet) konnte mir diese simple Frage mit dem Verwenden von Klassen in Klassen erfolgreich beibringen. Und das ist ja nur eine Kleinigkeit von vielen.

Ich werde mich auf jeden Fall weiter reinarbeiten und in paar Monaten sicherlich auch denken "Mann, was stellen denn manche Leute für simple Fragen". Aber wenn man die Lösung schon kennt, isses natürlich einfacher, als wenn man noch vor diesem riesigen, unübersichtlichen und chaotischen Berg steht.

Von daher werde ich hier garantiert noch ganz viele Fragen stellen und bestimmt auch ebenso viele Antworten finden.
 
Die Antwort hast du bekommen und wir werden nach bestem Wissen und Gewissen auch kommende Fragen beantworten.
Nur sollte man gerade als Anfänger sehr vorsichtig sein eine Sprache zu kritisieren die man noch nicht wirklich versteht.
Erstmal in Ruhe zurücklehnen und lernen.
Erst dann darf man motzen wenn man der Meinung ist das etwas nicht richtig ist :wink:
 

Genau diese Java ist auch eine Insel "Broschüre" :wink: habe ich hier neben mir liegen und das entsprechende Kapitel habe ich gelesen, aber ich hab's nicht verstanden.

Wie dem auch sei, ich bin dankbar für die Aufklärung. Motzen und fluchen werd ich bestimmt öfter als mir lieb ist, aber ich versuch's für mich zu behalten.
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben