Java 使用UML的类层次结构
任务是使用这个简单的图表创建类/接口层次结构。有人能检查一下我做这件事的企图,并说出我做错了什么吗。我需要类SystemFile能够根据currentDirectory值保留IFile对象的数组。实现IFile接口的类需要像文件类那样执行一些文件类方法。另一个问题是在listFiles方法中,它返回文件值,如何使其成为IFileJava 使用UML的类层次结构,java,file,uml,Java,File,Uml,任务是使用这个简单的图表创建类/接口层次结构。有人能检查一下我做这件事的企图,并说出我做错了什么吗。我需要类SystemFile能够根据currentDirectory值保留IFile对象的数组。实现IFile接口的类需要像文件类那样执行一些文件类方法。另一个问题是在listFiles方法中,它返回文件值,如何使其成为IFile import java.io.File; import java.io.InputStream; import java.io.OutputStream; import
import java.io.File;
import java.io.InputStream;
import java.io.OutputStream;
import java.security.cert.Extension;
public interface IFile {
public String getName();
public String getParent();
public String getPath();
public String getAbsolutePath();
public long lastModified();
public boolean isFile();
public boolean isDirectory();
public long size();
public boolean exists();
public boolean delete();
public File[] listFiles();
public InputStream getInputStream();
public OutputStream getOutputStream();
public Extension getFileExtension();
}
import java.io.File;
import java.util.Date;
import javax.swing.filechooser.FileSystemView;
import javax.swing.table.AbstractTableModel;
public class FileSystemTableModel extends AbstractTableModel implements
Constants {
private IFile currentDirectory;
private IFile[] files;
@Override
public int getColumnCount() {
return 3;
}
@Override
public int getRowCount() {
// TODO Auto-generated method stub
return files.length;
}
@Override
public Object getValueAt(int arg0, int arg1) {
switch (arg1) {
case 0:
if(FileSystemView.getFileSystemView().isDrive((IFile)files[arg0]))
return files[arg0].toString();
else
return files[arg0].getName();
case 1:
return files[arg0].size();
case 2:
return new Date(files[arg0].lastModified());
}
return arg1;
}
@Override
public boolean isCellEditable(int rowIndex, int columnIndex) {
// TODO Auto-generated method stub
return false;
}
public IFile getCurrentDirectory() {
return currentDirectory;
}
public void setCurrentDirectory(IFile currentDirectory) {
this.currentDirectory = currentDirectory;
}
public void setFiles(IFile[] files) {
this.files = files;
}
public IFile[] getFiles() {
return files;
}
@Override
public String getColumnName(int column) {
switch(column){
case 0:
return TABLE_COLUMN_NAME;
case 1:
return TABLE_COLUMN_SIZE;
case 2:
return TABLE_COLUMN_MODIFIED;
}
return null;
}
}
public class SystemFile extends File implements IFile {
public SystemFile(String arg0) {
super(arg0);
// TODO Auto-generated constructor stub
}
@Override
public String getName() {
// TODO Auto-generated method stub
return super.getName();
}
@Override
public String getParent() {
// TODO Auto-generated method stub
return super.getParent();
}
@Override
public String getPath() {
// TODO Auto-generated method stub
return super.getPath();
}
@Override
public String getAbsolutePath() {
// TODO Auto-generated method stub
return super.getAbsolutePath();
}
@Override
public long lastModified() {
// TODO Auto-generated method stub
return super.lastModified();
}
@Override
public boolean isFile() {
// TODO Auto-generated method stub
return super.isFile();
}
@Override
public boolean isDirectory() {
// TODO Auto-generated method stub
return super.isDirectory();
}
public long size() {
// TODO Auto-generated method stub
return super.length();
}
@Override
public boolean exists() {
// TODO Auto-generated method stub
return super.exists();
}
@Override
public boolean delete() {
// TODO Auto-generated method stub
return super.delete();
}
@Override
public File[] listFiles() {
// TODO Auto-generated method stub
return super.listFiles();
}
@Override
public InputStream getInputStream() {
// TODO Auto-generated method stub
return null;
}
@Override
public OutputStream getOutputStream() {
// TODO Auto-generated method stub
return null;
}
@Override
public Extension getFileExtension() {
// TODO Auto-generated method stub
return null;
}
}
我还没有使用remotefile类。这是你的家庭作业吗?这只是一小部分