Vehicle3 vehicle=new Vehicle3(10000.0);
Console.WriteLine (\ Console.WriteLine (\ Console.WriteLine(\ Console.WriteLine(\ Console.WriteLine (\ Console.WriteLine (\} }
应该得到以下的结果:
Creating a vehicle with a 10,000kg maximum load. Add box #1 (500kg) : true Add box #2 (250kg) : true Add box #3 (5000kg) : true Add box #4 (4000kg) : true Add box #5 (300kg) : false Vehicle load is 9750.0 kg
对Vehicle类的第二个和第三个版本采用相同的测试代码,输出的结果有没有发生变化?从代码可维护性的角度谈谈封装的好处。
3. 如果已知一个日期为2007/3/8,求10天后是哪一天,367天后呢? 设计思路:
(1)定义一个MyDate类(版本一),成员有: class MyDate {
//数据成员
private int day; private int month;
26
private int year; //方法成员
public MyDate(int y,int m,int d){ … } //构造一个日期 public MyDate DayInc(){ … } //返回下一天的日期 public MyDate DayInc(int x){ … } //返回x天后的日期 public void Display (){ … } //显示当前日期信息 }
(2)对MyDate类进行测试,测试代码如下: public class TestDate { public static void Main(String[] args) { MyDate d1 = new MyDate(2007,3,8); MyDate d2;
d2 = d1.DayInc(10);
d2.Display(); d2 = d1.DayInc(367); d2.Display(); } }
要求:将MyDate类中的方法代码编写完整,以实现程序所要求的功能。
27
如果将main方法中的语句
MyDate d1 = new MyDate(2007,3,8); 改为:
MyDate d1 = new MyDate(2007,33,58);其它语句不变,程序运行结果是什么?
运行结果:
(3)修改MyDate类(版本二)
要求:必须对生成的日期做合法性验证,设定如下规则
A) year : 大于或等于1900年,合法,否则则将year置为1900。 B) Month:在[1,12]范围内合法,否则将month置1。
C) Day: 与month有关,应month所在月有效,否则置1。
28
(设计参考:在MyDate类中增加两个方法:)
public void SetDate(int d,int m,int y){ … } //设置日期
private void CheckDate(int y,int m,int d){…} //对日期的有效性检查
进一步,求两个日期之间的相差的天数,MyDate类又如何改进? (设计参考:在MyDate类中增加 公有的方法:)
public int DaysBetweenTowDate(MyDate otherDate){… }
29
30
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库常熟理工学院-C_实验报告册(本二)(6)在线全文阅读。
相关推荐: