求高人帮我优化一下代码!简单~!

L502650 2008-12-06 12:40:02
import java.io.File;
import java.util.ArrayList;
import java.util.Scanner;

public class Assignment7 {

public static void main(String[] args) throws Exception {
Point[] storePoint = new Point[25];
Vector[] storeVector = new Vector[35];
Rectangle[] storeRectangle = new Rectangle[5];
Triangle[] storeTriangle = new Triangle[5];
ArrayList<String> temp = new ArrayList<String>();
String pointFile;
String vectorFile;
String shapeFile;
Scanner scanner = new Scanner(System.in);

System.out.print("Please type in the name of your point file: ");
pointFile = scanner.nextLine();
read(pointFile,temp);
for(int i = 0;i < 25;i++){
String line = temp.get(i);
String[] numbersOfLine = line.split(" ");
int x = Integer.parseInt(numbersOfLine[0]);
int y = Integer.parseInt(numbersOfLine[1]);
storePoint[i] = new Point(x,y);
System.out.println(storePoint[i].getX());
}
temp.clear();

System.out.print("Please type in the name of your Vector file: ");
vectorFile = scanner.nextLine();
read(vectorFile,temp);
for(int i = 0;i < 35;i++){
String line = temp.get(i);
String[] numbersOfLine = line.split(" ");
int begin = Integer.parseInt(numbersOfLine[0]);
int end = Integer.parseInt(numbersOfLine[1]);
storeVector[i] = new Vector(storePoint[begin],storePoint[end]);
System.out.println(storeVector[i].getLength());
}
temp.clear();

System.out.print("Please type in the name of your shape file: ");
shapeFile = scanner.nextLine();
read(shapeFile,temp);
for(int i = 0;i < 5;i++){
String line = temp.get(i);
String[] numbersOfLine = line.split(" ");
int sideA = Integer.parseInt(numbersOfLine[0]);
int sideB = Integer.parseInt(numbersOfLine[1]);
int sideC = Integer.parseInt(numbersOfLine[2]);
int sideD = Integer.parseInt(numbersOfLine[3]);
storeRectangle[i] = new Rectangle(storeVector[sideA],storeVector[sideB],storeVector[sideC],storeVector[sideD]);
System.out.println(storeRectangle[i].getPerimeter());
System.out.println(storeRectangle[i].getArea());
}

for(int i = 5;i < 10;i++) {
String line = temp.get(i);
String[] numbersOfLine = line.split(" ");
int sideA = Integer.parseInt(numbersOfLine[0]);
int sideB = Integer.parseInt(numbersOfLine[1]);
int sideC = Integer.parseInt(numbersOfLine[2]);
storeTriangle[i-5] = new Triangle(storeVector[sideA],storeVector[sideB],storeVector[sideC]);
System.out.println(storeTriangle[i-5].getPerimeter());
System.out.println(storeTriangle[i-5].getArea());
}
}
public static void read(String fileName,ArrayList<String> arrayList) throws Exception {
File inputfile = new File(fileName);
Scanner reader = new Scanner(inputfile);
while(reader.hasNext()){
arrayList.add(reader.nextLine());
}
}
}


这是我写的一个小程序的MAIN部分,就是用我建好的POINT类建立VECTOR,再用VECTOR建立RECTANGLE和TRIANGLE,感觉代码有点繁琐但是又不知道怎么优化,求高人优化一下~~谢谢了!
如果需要我的几个类的代码请留言 我都可以贴出来!
...全文
189 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
leo_bogard 2008-12-08
  • 打赏
  • 举报
回复
up
wag1_1 2008-12-07
  • 打赏
  • 举报
回复
其实你应该多加点注释.这样的可读性要比你功能分开要强(起码别人不要废脑子想了)
tiyuzhongxin789 2008-12-06
  • 打赏
  • 举报
回复
如果实在是想让代码可读性更强,建议把那几个功能块分别独立成一个个方法。然后在mian方法中调用它们就可以了。
这样的话,逻辑性就更突出了
hongxuan523 2008-12-06
  • 打赏
  • 举报
回复
写的不错啊,学习!
a1b2c3zhang 2008-12-06
  • 打赏
  • 举报
回复
不用优化,现在就很好。
lingdongfeixue 2008-12-06
  • 打赏
  • 举报
回复
对,就是楼上说的,在for循环那里可以优化!
C0150 2008-12-06
  • 打赏
  • 举报
回复
up
jay00 2008-12-06
  • 打赏
  • 举报
回复
学习
zhuwen9 2008-12-06
  • 打赏
  • 举报
回复
虽然有很多不太懂的东西
不过看了前辈们的建议还是颇有收获的
fuyueyue 2008-12-06
  • 打赏
  • 举报
回复
学习
SylvanLiu 2008-12-06
  • 打赏
  • 举报
回复
面向对象的思想,LZ还需要多加修炼啊
  • 打赏
  • 举报
回复

private void printInfo(String info,Scanner scanner,ArrayList<String> temp,int begin,int end)
System.out.print(info);
String pointFile = scanner.nextLine();
read(pointFile,temp);
for(int i = begin;i < end;i++){
String line = temp.get(i);
String[] numbersOfLine = line.split(" ");
int x = Integer.parseInt(numbersOfLine[0]);
int y = Integer.parseInt(numbersOfLine[1]);
storePoint[i] = new Point(x,y);
System.out.println(storePoint[i].getX());
}
temp.clear();
}
这样封装应该还凑合吧。
xiaojiit 2008-12-06
  • 打赏
  • 举报
回复
当一个程序的代码50%是功能相似的话,应该另提成另外的一个方法去实现它。就由于2楼说的,把几个功能分离成几个方法,会比较清晰一些
myjava_024 2008-12-06
  • 打赏
  • 举报
回复
楼上的说得很好,把每一个功能块划分开来,减弱他们的耦合性
hepeng19861212 2008-12-06
  • 打赏
  • 举报
回复
偶觉得还可以啊 ,不用怎么优化的。

如果实在是想让代码可读性更强,建议把那几个功能块分别独立成一个个方法。然后在mian方法中调用它们就可以了。
这样的话,逻辑性就更突出了

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧