UML图到Java代码
我是Java新手,正在尝试解决一些问题,其中我必须将UML图转换为Java代码:我有一个UML文档的图像- 我将向您展示我目前拥有的: Q1:编写类Entry的Java版本,假设它具有以下构造函数:public Entry(字符串名称),并且方法getSize是抽象的。 A: Q2:编写类文件的Java版本,假设它具有以下构造函数: 公共文件(字符串名称,长大小) A: 问题3:目录包含文件和目录的集合。编写类目录的Java版本,假设它具有以下构造函数: publicdirectory(stringname)和getSize方法返回目录中所有文件的总大小及其所有属性 子目录(在此模型中,忽略目录本身的大小) 答:这就是我陷入困境的地方,我不知道如何处理getSize方法。有人能告诉我到目前为止我所做的是否正确吗?也为我指明了第三季度的正确方向 编辑:好的,我已经尝试了一个答案,但我真的不知道我在做什么UML图到Java代码,java,uml,Java,Uml,我是Java新手,正在尝试解决一些问题,其中我必须将UML图转换为Java代码:我有一个UML文档的图像- 我将向您展示我目前拥有的: Q1:编写类Entry的Java版本,假设它具有以下构造函数:public Entry(字符串名称),并且方法getSize是抽象的。 A: Q2:编写类文件的Java版本,假设它具有以下构造函数: 公共文件(字符串名称,长大小) A: 问题3:目录包含文件和目录的集合。编写类目录的Java版本,假设它具有以下构造函数: publicdirectory(str
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;
}
}
import java.util.ArrayList;
公共类目录扩展了条目{
ArrayList条目=新的ArrayList();
公用目录(字符串名称)
{
超级(姓名);
}
公共长getSize(){
长尺寸;
对于(int i=0;i,您对Q1和Q2的答案看起来不错
关于第三季度:
// A Directory is an Entry and can contain an arbitrary number of other Entry objects
public class Directory extends Entry {
// you need a collection of Entry objects, like ArrayList<Entry>
// ArrayList<Entry> entries = ...
function getSize() {
long size;
// now we calculate the sum of all sizes
// we do not care if the entries are directories or files
// the respective getSize() methods will automatically do the "right thing"
// therefore: you iterate through each entry and call the getSize() method
// all sizes are summed up
return size;
}
}
//目录是一个条目,可以包含任意数量的其他条目对象
公共类目录扩展了条目{
//您需要一组条目对象,如ArrayList
//ArrayList条目=。。。
函数getSize(){
长尺寸;
//现在我们计算所有尺寸的总和
//我们不关心条目是目录还是文件
//各自的getSize()方法将自动执行“正确的操作”
//因此:遍历每个条目并调用getSize()方法
//所有尺寸都已汇总
返回大小;
}
}
您可以尝试以下30天评估构建:
只需解压缩,它就可以工作。您可以编写java代码,同时激活UML类图。易于使用且非常高效。前面指出的前两项是正确的
下面是我将如何实现您的目录类
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 = 0;
for(int i=0;i<entries.size();i++)
{
//Probably something like this
size += entries.get(i).getSize();
}
return size;
}
}
您走对了。对于Q3,您需要将一个目录与0个或多个条目类型对象关联起来。在Java中,这些关联是通过集合实现的,比如存储关联对象的ArrayList。我猜您的目录类将包含一个集合(可能是ArrayList)getSize方法将循环遍历这些条目(目录和文件)对象,并合计大小(使用文件的getSize方法)和返回总数。您可能应该有一个方法将文件和目录添加到目录类中的文件集合中。您几乎得到了它。当您使用集合时,可以使用Java的foreach表示法:for(Entry:entries){…}
括号内的“entry”是当前迭代的entry对象,您可以正常调用其方法:String name=entry.getName();
// A Directory is an Entry and can contain an arbitrary number of other Entry objects
public class Directory extends Entry {
// you need a collection of Entry objects, like ArrayList<Entry>
// ArrayList<Entry> entries = ...
function getSize() {
long size;
// now we calculate the sum of all sizes
// we do not care if the entries are directories or files
// the respective getSize() methods will automatically do the "right thing"
// therefore: you iterate through each entry and call the getSize() method
// all sizes are summed up
return size;
}
}
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 = 0;
for(int i=0;i<entries.size();i++)
{
//Probably something like this
size += entries.get(i).getSize();
}
return size;
}
}
public long getSize(){
long size = 0;
for( Entry e : entries)
{
//Probably something like this
size += e.getSize();
}
return size;
}