Aufteilen in Classen

MiMa

Top Contributor
Hallo,

ich habe hier im Forum etwas über Dateien und Verzeichnisse gelesen und gleich mal in Eclise geschrieben.

Da ich üben möchte Programme in Klassen zu teilen, habe ich das mal mit diesem versucht.

Code:
package dateien;

import java.io.File;

public class Hauptprogramm
{
	public static void main(String[] args)
	{
		// Objekt erzeugen
	    	File pfad = new File("/Volumes/Dateien");
	    	// Klasse "listDir" aufrufen
                listDir(pfad);
	}

	public class listDir(File pfad);
	{
	  	// Dateiliste erzeugen
	   	File[] dateiListe = pfad.listFiles();
	    	
	   	// Wenn Dateien gefunden wurden
	   	if (dateiListe != null)
	   	{
	  		for  (int i = 0; i < dateiListe.length; i++)
	   		{
	   			System.out.println(dateiListe[i].getAbsolutePath());
	   			if (dateiListe[i].isDirectory())
	   			{
	   				System.out.print(" (Ordner)");
	   			}
	   			else
	   			{
	   				System.out.print(" (Datei)");
	   			}
	   		}
	   	}  
	}
}

In der Main Methode bekomme ich die Information, das "listDir" eine undefinierte Methode ist?
Und bei List dir bekomme ich eine Meldung Class invalid Type?

Kann mir da jemand helfen?

Danke

Mi
 
In der main befindest du dich in statischem kontext, die listDir ist aber garnicht statisch.

😉 wenn das das einzige problem wäre

@MiMa
Java:
public class listDir(File pfad);
Eine Klassen Deklaration hat keine Parameter und braucht auch kein ';'
Deine "Klasse" listDir (sollte das nicht eigentlich eine Methode sein?) hat keine Methoden in welcher der Code steht. Außerdem darf es nur eine public Class pro Datei geben.
....
 
Außerdem darf es nur eine public Class pro Datei geben.....
Das stimmt nicht (oder ist schlecht formuliert). Es darf nur eine Top-Level-Klasse geben, aber diese kann auch mehrere andere public Klassen (auch nicht-statische) enthalten.

Nur ob das nicht-statisch sinnvoll ist ist eine andere Frage, sonst enstehen so hübsche Gebilde:

Java:
new Oberklasse().new InnereClass();
 
public class listDir(File pfad);
{


ich würde:
Mehrere Klassen nicht in ein File schreiben
keine Parameter übergeben
hinten keinen ; schreiben...
 
Danke für die vielen Tipps, habe es dann doch noch hin bekommen.

Bei kleinen Tests mache ich oft die Klassen mit in das Hauptprogramm und wenn es läuft, lagere ich das dann in eine eigene Klasse aus.

Code:
package dateien;

import java.io.File;

public class Hauptprogramm
{
	public static void main(String[] args)
	{
			// Objekt erzeugen
	    	File pfad = new File("/Volumes/Dateien");
	    	listDir(pfad);
	}
	
	public static void listDir(File pfad)
	{
	  	// Dateiliste erzeugen
	   	File[] dateiListe = pfad.listFiles();
	    	
	   	// Wenn Dateien gefunden wurden
	   	if (dateiListe != null)
	   	{
	  		for  (int i = 0; i < dateiListe.length; i++)
	   		{
	   			System.out.println(dateiListe[i].getAbsolutePath());
	   			if (dateiListe[i].isDirectory())
	   			{
	   				System.out.print(" (Ordner)");
	   			}
	   			else
	   			{
	   				System.out.print(" (Datei)");
	   			}
	   		}
	   	}  
	}
}

Danke

Mi
 

Zurück
Oben