Verkapselung von Klasse?

1 Antwort

Moin!

Die einfachste Variante wäre, dass die Klasse nicht statisch ist und direkt als "Wiedergabe-Wert" dient.

Bedeutet: Die Klasse Filez erbt Arraylist<File> und ist damit selber eine erweiterte Arraylist:

import java.io.File;
import java.util.ArrayList;

class Filez extends ArrayList<File> {

    public Filez(File directory) {
        for (File _x: directory.listFiles()) {
            add(_x);
        }
    }

    public void showAllFiles() {
        for (File _x: this) {
            System.out.println("Der Pfad der Datei " + _x.getName() + " lautet: " + _x.getPath());
        }
    }
}

Aufruf:

Filez test = new Filez(new File("/home/jacob/Dokumente/Studium/Programmierung/Test Project/src"));
test.showAllFiles();

Output:

Der Pfad der Datei Filez.java lautet: /home/jacob/Dokumente/Studium/Programmierung/Test Project/src/Filez.java
Der Pfad der Datei Main.java lautet: /home/jacob/Dokumente/Studium/Programmierung/Test Project/src/Main.java

Process finished with exit code 0

Grüße, Jacob