私はJavaが初めてで、UMLダイアグラムをJavaコードに変換する必要があるいくつかの質問に対処しようとしています:umlドキュメントの画像があります-
http://s1079.photobucket.com/albums/w513/user20121/?action=view¤t=uml.jpg
私がこれまでに持っているものをお見せします:
Q1: コンストラクター public Entry(String name) があり、メソッド getSize が抽象であると仮定して、クラス Entry の Java バージョンを作成します。A:
public abstract class Entry {
private String name;
public Entry(String name){
this.name = name;
}
public String getName()
{
return name;
}
abstract long getSize();
}
Q2: クラス File の Java バージョンを、コンストラクター public File(String name, long size) があると仮定して作成します。
public class File extends Entry {
private long size;
public File(String name, long size){
super(name);
this.size = size;
}
public long getSize(){
return size;
}
}
Q3: ディレクトリには、ファイルとディレクトリのコレクションが含まれています。public Directory(String name) というコンストラクタがあり、メソッド getSize がディレクトリ内のすべてのファイルとそのすべてのサブディレクトリの合計サイズを返すと仮定して、クラス Directory の Java バージョンを作成します (このモデルでは、ディレクトリ自体のサイズは無視されます)。
A: ここで行き詰まります。getSize メソッドをどうすればよいかわかりません。私がこれまで行ってきたことが正しいかどうか、誰か教えてもらえますか? また、Q3の正しい方向を教えてください。
編集:わかりました、私は答えを試みましたが、私は本当に自分が何をしているのかわかりません..
import java.util.ArrayList;
public class Directory extends Entry {
ArrayList <Entry> entries = new ArrayList<Entry>();
public Directory(String name)
{
super(name);
}
public long getSize(){
long size;
for(int i=0;i<entries.size();i++)
{
size += //don't know what to put here?
}
return size;
}
}