java 实训指导书3.docx
- 文档编号:16290124
- 上传时间:2023-07-12
- 格式:DOCX
- 页数:15
- 大小:37.68KB
java 实训指导书3.docx
《java 实训指导书3.docx》由会员分享,可在线阅读,更多相关《java 实训指导书3.docx(15页珍藏版)》请在冰点文库上搜索。
java实训指导书3
实训项目名称:
类、接口和包的使用
1、实训目的
1)掌握类的创建及其成员的定义。
2)对象的创建和使用。
3)掌握方法的定义和使用。
4)掌握接口的定义。
2、学时
12学时
3、实训条件
硬件:
计算机
软件:
WINXP操作系统,Eclipse开发平台。
地点:
计算机软件实验室
4、实训内容
1)设计银行账户类及存取款操作方法。
其中银行账户类account中包括:
账户信息:
账号、姓名、开户时间、身份证号码等
存款方法:
put()。
取款方法:
get()。
查看账户现金余额方法:
howmatch()。
要求,银行账户类声明为public,其中成员变量声明为private,方法声明为public。
2)阅读下面的程序,对程序运行结果分析。
下面的程序文件名为School.java,存放在目录D:
\myjava\school中,程序中把类School添加到相应的包中,在编译运行后分析结果。
importschool.Person_i;
importschool.student.*;
publicclassSchool
{
publicstaticvoidmain(Stringargs[])
{
Islee=newIs(“Philip”,18);
lee.work();
((Student_i)lee).work();
((Person_i)lee).work();
}
}
3)编写一个接口定义,产生一年的12个月的一组常量为:
1,2,3,4,5,6,7,8,9,10,11,12。
4)扩展练习。
5、实训步骤
任务一
第一题:
设计银行账户类及存取款操作方法。
其中银行账户类account中包括:
账户信息:
账号、姓名、开户时间、身份证号码等
存款方法:
put()。
取款方法:
get()。
查看账户现金余额方法:
howmatch()。
要求,银行账户类声明为public,其中成员变量声明为private,方法声明为public。
步骤如下:
1)编写程序,参考程序如下:
publicclassAccount
{
privateStringid,id_name,id_time,id_card;
privateintvalue;
Account(Stringa,Stringb,Stringc,Stringd,inte)
{
id=a;
id_name=b;
id_time=c;
id_card=d;
value=e;
}
publicvoidget(intv)
{
if(value>=v)
{value=value-v;
System.out.println("已取出"+v+"元。
");
}
else
{
System.out.println("余额不足,已取出"+value+"元。
");
value=0;
}
}
publicvoidput(intv)
{
value=value+v;
System.out.println("已存入"+v+"元。
");
}
publicvoidhowmatch()
{
System.out.println("该帐户余额为:
"+value);
}
publicstaticvoidmain(Stringargs[])
{
Accounta1=newAccount("123","张平","2006-10-23","789654",500);
a1.howmatch();
a1.put(600);
a1.howmatch();
a1.get(1300);
a1.howmatch();
}
}
2)运行程序,运行结果如下:
第二题:
阅读下面的程序,对程序运行结果分析。
下面的程序文件名为School.java,存放在目录D:
\myjava\school中,程序中把类School添加到相应的包中,在编译运行后分析结果。
importschool.Person_i;
importschool.student.*;
publicclassSchool
{
publicstaticvoidmain(Stringargs[])
{
Islee=newIs(“Philip”,18);
lee.work();
((Student_i)lee).work();
((Person_i)lee).work();
}
步骤如下:
1)编译、运行以上程序。
2)程序运行结果为:
Programming…
Programming…
Programming…
3)分析为什么结果不是:
Programming…
Havingclasses
Working…
分析情况如下:
因为Islee=newIs("Philip",18)语句创建了信息系学生类Is的对象lee,类Is的work()方法中只有输出字符串“Programming...”的功能,所以lee.work()语句输出了该字符串;(Student_i)lee是将lee强制转换类型为Student_i类型,但是无论类型转换为何种类型,lee依然还是类Is的对象,所以仍旧执行类Is的work()方法,故此仍然输出字符串“Programming...”,而不是执行Student_i类的work()方法(输出字符串“Havingclasses”);同样的道理,((Person_i)lee).work()仍然输出字符串“Programming...”,而不是执行Person_i类的work()方法(输出字符串“Working...”)。
第三题:
编写一个接口定义,产生一年的12个月的一组常量为:
1,2,3,4,5,6,7,8,9,10,11,12。
参考的接口定义如下:
publicinterfaceMonths
{
intJANUARY=1,FEBRUARY=2,MARCH=3,APRIL=4;
intMAY=5,JUNE=6,JULY=7,AUGEST=8;
intSEPTEMBER=9,OCTOBER=10,NOVEMBER=11,DECEMBER=12;
}
任务二:
扩展练习,练习内容如下:
第一题:
编写一个判断素数的方法,以整数作为参数,当该参数为素数时,输出TRUE,否则输出FALSE。
步骤如下:
1)编写程序
Publicclassprime{
Publicstaticvoidtestprime(intm){
Booleanisprime=true;
For(inti=2;i If(m%i==0){Isprime=false; Break;} If(isprime){ System.out.println(“true”); ElseSystem.out.println(“false”);} Publicstaticvoidmain(Stringargs[]) {if(args.length! =1) {system.out.println(“输入格式错误! 请按照此格式输入: javaprimem”); System.exit(0); } Intnumber=Integer.parseInt(args[0]); Testprime(number);}} 2)调试程序查看程序异常并处理异常。 第二题: 编写一个方法,用来计算并输出1-1/2+1/3-1/4+1/5-1/6+…-1/50。 步骤如下: 1)编写程序,参考程序如下: Publicclassseries { Publicstaticdoublecalculatenum() {intsign=-1; Doubleunder=1.0,sum=1.0,term; For(inti=2;i<=50;i++) { under=I; term=sign/under; sum=sum+term; sign=-sign; } Returnsum; } Publicstaticvoidmain(Stringargs[]){ System.out.println(“计算结果是: ”+calculatenum()); }} 2)调试程序查看程序异常并处理异常。 第三题: 编写方法判断一个三位数是否是水仙花数。 步骤如下: 1)编写程序,参考程序如下: Publicclassasphodelnum { PublicstaticBooleanisasphodelnum(intm) { IntI,j,k; I=m/100; J=m/10%10; K=m%10; If(m==i*i*i+j*j*j+k*k*k) Returntrue; Else Returnfalse} Publicstaticvoidmain(Stringargs[]){ Intnum=Integer.parseInt(args[0]); If(isasphodelnum(m)) System.out.println(“是”); Else System.out.println(“否”)} 2)调试程序查看程序异常并处理异常。 任务三: 扩展练习,练习内容如下: 第一题: 设计一个交通工具类Vehicle,其中的属性包括: 速度speed、类别kind、颜色color;方法包括设置速度、设置颜色、取得类别、取得颜色。 创建vehicle的对象,为其设置新速度和颜色,并显示其状态(所有属性)。 步骤如下: 1)编写程序,参考程序如下: PublicclassVehicle { Stringcolor; Stringkind; intspeed; Vehicle() { Color=”Red”; Kind=”卡车”; Speed=0; } Publicvoidsetcolor(Stringcolor1) { Color=color1; } PublicvoidsetSpeed(intspeed1) { Speed=speed1; } Publicvoidsetkind(Stringkind1) { Kind=kind1; } PublicStringgetcolor() { Returncolor; } Publicstringgetkind() { Returnkind; } Publicintgetspeed() { Returnspeed; } Publicstaticvoidmain(String[]args) { VehicleBMW=newVehicle(); BMW.setcolor(“Black”); BMW.setspeed(150); BMW.setkind(“跑车”); System.out.println(“有一辆”+BMW.getcolor()+”的”+BMW.getkind()+”行驶在高速公路上。 ”); System.out.println(“时速”+BMW.getspeed()=“km/h”); } } 2)调试程序查看程序异常并处理异常。 第二题: 设计一立方体类Cube,只有边长属性,具有设置边长、取得边长、计算表面积、计算体积的方法。 创建Cube对象,为其设置新边长,显示其边长,计算并显示其表面积和体积。 步骤如下: 1)编写程序,参考程序如下: Publicclasscube { doubleside; publiccube() { Side=0; } Publicvoidsetside(doubleside1) { Side=side1; } Publicdoublegetside() { Returnside; } Publicdoublearea() { Return6*side*side; } Publicdoublevolume() { Returnside*side*side; } Publicstaticvoidmain(Stringargs[]) { Cubecube1=newcube(); Cube1.setside(2.0); System.out.println(“side=”+cube1.getside()); System.out.println(“Area=”+cube1.area()); System.out.println(“Volume=”+cube1.volume()); } } 2)调试程序查看程序异常并处理异常。 第三题: 设计一个圆类circle,具有属性: 圆心坐标x和y及半径r,除具有设置及获取属性的方法外,还有计算周长的方法perimeter()和计算面积的方法area()。 再设计一个圆柱体类cylinder,cylinder继承自circle,增加了属性: 高度h,增加了设置和获取h的方法,计算表面积的方法area()和计算体积的方法volume()。 穿件cylinder对象,显示其所有的属性,并计算起面积和体积。 解析: cylinder类的构造方法中,通super()方法调用父类的构造方法。 方法中的局域变量与成员变量同名,缺省引用的是局域变量,如果要引用成员变量必须用this修饰。 Cylinder类中的area()方法覆盖了circle中的area()方法,同时cylinder类中的area()方法还通过super.area()调用circle类中的area()方法计算上、下底的面积。 步骤如下: 1)编写程序,参考程序如下: Classcircle{ Doublex,y,r; Circle(doublex,doubley,doubler){ This.x=x; This.y=y; This.r=r;} Publicvoidsetx(doublex){ This.x=x;} Publicvoidsety(doubley){ This.y=y;} Publicvoidsetr(doubler){ This.r=r;} Publicdoublegetx(){ Returnx;} Publicdoublegety(){ Returny;} Publicdoublegetr(){ Returnr;} Publicdoublearea(){ Returnr*r*3.14159;} Publicdoubleperimeter(){ Return2*r*3.14159;} Publicvoidshow(){ System.out.println(x+y+r);} } Publicclasscylinderextendscircle{ Doubleh; Cylinder(doublex,doubley,doubler,doubleh){ Super(x,y,r); This.h=h;} Publicvoidseth(doubleh){ This.h=h;} Publicdoublegeth(){ Returnh;} Publicdoublearea(){ Returnperimeter()*h+super.area()*2;} Publicdoublevolume(){ Returnsuper.area()*h;} Publicstaticvoidmain(Stringargs[]){ Cylindercylinder=newcylinder(1,1,4,8); Cylinder.show(); System.out.println(„height=“+cylinder.geth()); System.out.println(“area=”cylinder.area()); System.out.println(„volume=“cylinder.volume());}} 2)调试程序查看程序异常并处理异常。 6、考核方式、成绩评定标准 共10分,顺利完成Java程序的编写、编译占70%;正确执行相应的程序占30%。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 实训指导书3 指导书
![提示](https://static.bingdoc.com/images/bang_tan.gif)