成文原因:
这篇文章是我这周所做的 Java 实验题的一个小总结。
这次实验让我深刻赞同了我们 Java 老师在这节实验课前告诉我们的话:
最重要的是把问题想明白,它要怎么拆分成几个类,每个类里究竟需要哪些方法,具体细节怎么实现。当你真正把这些问题想清楚了以后,剩下的编程,其实就是很简单的事情了。难度往往不是难在编程,而是分解问题为一个个小问题后,逐一解决它们的能力。
做完实验以后再来看老师这句话,觉得不能同意更多。
我贴上来的代码有两份。
前一份是未完成的代码,之所以未完成,是因为:写到一半时,觉得这样的结构设计太不合理了,如果照着这么写下去,会有许多重复的代码片段不断地出现,于是就想着这么去改进…怎样才能尽可能减少方法,但是提高代码的复用性呢?
于是,果断放弃了前一种没写完的,不太优的结构,第二份代码才是写完时真正提交的最终版本。
除了代码,我把实验报告的心得部分也一并贴了上来用以自警
-------------------------------下面是实验题目------------------------------
-------------------------------下面是代码------------------------------
/*
前一份是未完成的代码,之所以未完成,是因为:写到一半时,觉得这样的结构设计太不合理了,如果照着这么写下去,会有许多重复的代码片段不断地出现,于是就想着这么去改进…怎样才能尽可能减少方法,但是提高代码的复用性呢?
于是,果断放弃了前一种没写完的,不太优的结构,第二份代码才是写完时真正提交的最终版本。
*/
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.*;
class Customer
{
private String name;
private String fNum; // flight number,表示他所定的航线的航线号
private int sum; //买了多少票
Customer()
{
}
Customer(String n, String f, int s)
{
name = n;
fNum = f;
sum = s;
}
public void setName(String n)
{
name = n;
}
public String getName()
{
return name;
}
public void setSum(int s)
{
sum = s;
}
public int getSum()
{
return sum;
}
public void setfNum(String f)
{
fNum = f;
}
String getfNum()
{
return fNum;
}
}
class Flight
{
private static int sum = 0; //航线计数
private int order; //航线排列号
private String destination;//终点站名
private String FNum; //航班号
private int limit; //乘客限额
private int free; //余票数量
private LinkedList booked; //已预定客户列表
private LinkedList waiting; //等候替补客户名单
Flight()
{
}
Flight(int o, String d, String F, int l)
{
order = o;
destination = d;
FNum = F;
limit = l;
}
public int getOrder()
{
return order;
}
public String getDestination()
{
return destination;
}
public String getFNum()
{
return FNum;
}
public int getLimit()
{
return limit;
}
public int getFree()
{
return free;
}
public void addFree(int f)
{
free += f;
}
public void subFree(int f)
{
free -= f;
}
public LinkedList getBooked()
{
return booked;
}
public LinkedList getWaiting()
{
return waiting;
}
public void showInfo() //show information
{
System.out.println("航线排列号为:" + order + " 终点站为:" + destination);
System.out.println("航班号为:" + FNum + " 成员定额为: " + limit + " 剩余票数为: " + free);
System.out.println("已订票客户有:");
Ite