我是Java的新手,正在尝试解决一些问题,需要将UML图转换为Java代码:我有一个uml文档的图像-
http://s1079.photobucket.com/albums/w513/user20121/?action=view¤t=uml.jpg
我将展示目前为止的内容:
问题1:编写一个Java版本的Entry类,假设它有这个构造函数:public Entry(String name),并且getSize方法是抽象的。 答案:
public abstract class Entry {
private String name;
public Entry(String name){
this.name = name;
}
public String getName()
{
return name;
}
abstract long getSize();
}
问题2: 编写一个Java版本的File类,假设它有以下构造函数: 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;
}
}
问题三:一个目录包含一组文件和目录。编写一个 Java 版本的 Directory 类,假设它有这个构造函数:public Directory(String name),并且 getSize 方法返回目录中所有文件和子目录的总大小(在此模型中,目录本身的大小被忽略)。
答案:我卡在了 getSize 方法上,不知道该怎么做。有人能告诉我我目前所做的是否正确吗?还能指导我如何解决问题三吗?
编辑:好的,我尝试回答了,但是我真的不知道我在做什么...
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;
}
}
for(Entry entry: entries) { ... }
在括号内,“entry”是当前迭代的Entry对象,你可以正常调用它的方法:String name = entry.getName();
- Ozan