2016-06-13 20 views
0

Ich habe vor kurzem begonnen, die Java-Programmiersprache zu lernen, und ich brauche Hilfe zu dieser Frage. Gegeben eine Klassendatei, die das folgende Feld als eine ArrayList private deklariert private ArrayList<String> files; schreiben Sie eine Kopfzeile (Signatur) für eine Methode, die alle Mitglieder dieser Auflistung auflistet. Rufen Sie Ihre Methode listAllFiles auf. Mein aktueller Versuch ist so etwas.Benötigen Sie Hilfe zu Java-Signaturen

private listAllFiles(ArrayList<String>); 

Antwort

1

Ihre Methode hat zuerst die Zugriffsebene (zB private, protected, public oder nichts für die Standard Ebene) und nach, dass es zu definieren hat, was es gibt, so gehe ich davon aus der Beschreibung dieses sein nichts (void) wird, brauchen Sie keine Parameter, wenn Sie das Feld in dieser Klasse haben:

private void listAllFiles(); 
3

Sie einen Rückgabetyp aus dem Verfahren weggelassen wird. Alle Java-Methoden müssen einen Typ oder void zurückgeben.

Wenn Ihre Methode einfach listet alle Dateien auf einen String Object dann könnte es einen String zurückgeben:

public String listAllFiles() 

Wenn alle Dateien auflistet es system.out void zurückkehren konnte:

public void listAllFiles() 

Alternativ es könnte eine Kopie des private ArrayList<String> zurückgeben (so dass die private Variable unveränderlich für Clients bleibt):

Beachten Sie, dass Ihre Methode wahrscheinlich public sein sollte, damit Clients sie verwenden können ... Dies hängt jedoch stark von den Anforderungen ab, und es könnte für die Methode geeignet sein, private zu zu sein.

Hinweis, wie von @ Thilo in den Kommentaren darauf hingewiesen, wenn Sie eine List zurückgeben, sollten Sie "auf die Schnittstelle programmieren", eine Liste anstelle einer bestimmten Art der Liste zurück, so dass Sie Ihre tatsächliche ändern können List Implementierung, wenn sich die Anforderungen ändern.

2

Wenn die Methode nur etwas ausdruckt, dann wäre der Rückgabetyp void (nichts) sein:

public void listAllFiles(){ 
    // no need to pass in the string list, because we can do 
    for (String l: this.files){ 
    // .. 
    } 
} 
Verwandte Themen