2016-06-13 23 views
0

最近私はJavaプログラミング言語の学習を始めました。この質問については助けが必要です。次のフィールドをarrayListとして宣言するクラスファイルが与えられた場合private ArrayList<String> files;このコレクションのすべてのメンバーをリストするメソッドのヘッダ(署名)を記述します。メソッドlistAllFilesを呼び出します。私の現在の試みは、このようなものです。Java署名のヘルプが必要

private listAllFiles(ArrayList<String>); 

答えて

1

あなたの方法は、最初のアクセスレベル(例えばprivateprotectedpublicまたはデフォルトレベルのために何を)持っている必要があり、その後、それが返すものを定義しているので、私は記述から、これを前提とし何も(void)できなくなりますあなたは、このクラスのフィールドを持っている場合は、任意のパラメータを必要としない:

private void listAllFiles(); 
3

あなたはあなたのメソッドからの戻り値の型を省略しています。すべてのJavaメソッドは、型またはvoidを返す必要があります。また

public void listAllFiles() 

:それはvoidを返すことができ、System.outにすべてのファイルを一覧表示した場合

public String listAllFiles() 

:あなたの方法は、単にString Objectにすべてのファイルを一覧表示した場合

それは文字列を返すことができますprivate ArrayList<String>のコピーを返すことができます(したがって、プライベート変数はクライアントには変更できません)。

public List<String> listAllFiles() 

クライアントがそれを利用できるようにするには、あなたの方法はおそらくpublicでなければならないことに注意してください...これは主に要件に依存し、方法はからClassになることが適切かもしれません。

コメントで@Thiloが指摘しているように、Listを返す場合は、特定のタイプのリストではなくリストを返すことで、実際のものを変更することができますList実装要件が変更された場合。

2

方法は、単に何かを出力した場合、戻り値の型はvoid(何もない)のようになります。

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