java实训指导书3.docx

上传人:b****1 文档编号:1688510 上传时间:2023-05-01 格式:DOCX 页数:15 大小:37.97KB
下载 相关 举报
java实训指导书3.docx_第1页
第1页 / 共15页
java实训指导书3.docx_第2页
第2页 / 共15页
java实训指导书3.docx_第3页
第3页 / 共15页
java实训指导书3.docx_第4页
第4页 / 共15页
java实训指导书3.docx_第5页
第5页 / 共15页
java实训指导书3.docx_第6页
第6页 / 共15页
java实训指导书3.docx_第7页
第7页 / 共15页
java实训指导书3.docx_第8页
第8页 / 共15页
java实训指导书3.docx_第9页
第9页 / 共15页
java实训指导书3.docx_第10页
第10页 / 共15页
java实训指导书3.docx_第11页
第11页 / 共15页
java实训指导书3.docx_第12页
第12页 / 共15页
java实训指导书3.docx_第13页
第13页 / 共15页
java实训指导书3.docx_第14页
第14页 / 共15页
java实训指导书3.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

java实训指导书3.docx

《java实训指导书3.docx》由会员分享,可在线阅读,更多相关《java实训指导书3.docx(15页珍藏版)》请在冰点文库上搜索。

java实训指导书3.docx

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%。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2