Hallo,
Ich habe zwei Klassen. Ich möchte file, die ich schon in der klasse fd erstellt habe, in klasse FunctionFile auch benuzten.
Vielen Dank im Voraus.
Java:
publicclass fd {privatestaticFile file;publicstaticFilecreate(String name,StringPath){/** Create new File */
file =newFile(Path+"\\"+name );
file.mkdir();return file;}}publicclassFunctionFile(String ordnerName){publicstaticvoidFunction(){/**Wie kann ich hier file aus dem class fd benutzen? */File hauptOrdner=fd.create.file;File unterOrdner=newFile(file.getAbsoluteFile()+"\\"+ordnerName )}}
Erstmal, wie Gucky schon gesagt hat, Klassen IMMER groß, und Variablen UND Methoden IMMER klein!
Zudem, solltest du dir Getter- und Setter-Methoden anschauen.
Hier ein Beispiel:
Java:
packagecom.myapp.app;importjava.io.*;publicclassClassOne{privateFile file =null;publicClassOne(String fileName,String fileLocation){ file =newFile(fileLocation +"/"+ fileName);}publicFilegetFile(){return file;}publicvoidsetFile(String fileName,String fileLocation){this.file =newFile(fileLocation +"/"+ fileName);}publicvoidcreate()throwsIOException{createFile();}privatevoid createFile throwsIOException(){
file.getParentFile().mkdirs();
file.createNewFile();}}// Neue DateipublicclassClassTwo{ClassOne c1 =newClassOne("eineDatei.bin",System.getProperty("user.home")+"/.programmName");// Niemals im echten Leben eine Variable so deklarieren! Wenn möglich immer in Methoden oder in dem Constructor. privatevoideineMethodeOderSo(){try{
c1.create();}catch(IOException ex){System.err.println("Fehler beim xy!\n"+ ex.toString());}}}
Wie du die Getter- und Setter-Methoden benutzen musst, ist denke ich mal klar.
Aber das sind so die Grundprinzipien der OOP. Lasse grundsätzlich andere Klassen nicht an solche Methoden, mache das immer durch Zwischenmethoden.
1. static lass mal weg, das killt die Objektorientierung in deinem Fall. Egal wie oft du eine Klasse mit new ... instanzierst, alle werden sie auf die ein und die gleiche Variable zeigen anstatt dass jede eine eigene Kopie bekommt !
2. Mach die Klassenvariablen private und schau dir Getter und Setter an. Darüber kannst du dann innerhalb der 2ten auf die Variablen der ersten zugreifen.
3. Du kannst auch die zweite Klasse innerhalb der ersten Klasse schreiben. Dann hat die innere Klasse Zugriff auf die Klassenvariablen der oberen. Das wird später bei ActionListenern usw. hilfreich.