实验抽象类和接口Word文档下载推荐.docx
《实验抽象类和接口Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《实验抽象类和接口Word文档下载推荐.docx(9页珍藏版)》请在冰豆网上搜索。
![实验抽象类和接口Word文档下载推荐.docx](https://file1.bdocx.com/fileroot1/2022-12/9/33cffb8f-8d85-4808-b71c-e233b7fc6a6c/33cffb8f-8d85-4808-b71c-e233b7fc6a6c1.gif)
证性实验)。
2.程序会要求用户以规范的格式输入自己的生日日期,然后将使用Date类和Calendar类中的方法计算出用户的生日是星期几,用户的年龄以及出生的年份是否是闰年。
四、实验的软硬件环境要求
硬件环境要求:
PC计算机;
内存512MB^上
使用的软件名称、版本号以及模块:
操作系统:
WindowsXP或Windows7
软件:
JDK7.0;
Eclipse
五、知识准备
前期要求掌握的知识:
了解Java中的抽象类和接口。
实验相关理论或原理:
1、Java接口和Java抽象类最大的一个区别,就在于Java抽象类可以提供某些方法的部分实现,而Java接口不可以,这大概就是Java抽象类唯一的优点吧,但这个优点非常有用。
如果向一个抽象类里加入一个新的具体方法时,那么它所有的子类都将得到了这个新方法,而Java接口做不到这一点,如果向一个Java接口里加入一个新方法,所有实现这个接口的类就无法成功通过编译了,因为你必须让每一个类都再实现这个方法才行,这显然是Java接口的缺点。
2、一个抽象类的实现只能由这个抽象类的子类给出,也就是说,这个实现处在抽象类所定义出的继承的等级结构中,而由于Java语言的单继承性,所以抽象类作为类型定义工具的效能大打折扣。
六、验证性实验
实验要求
通过编写程序Birthday.java,编辑、运行后输出结果如图10.1所示:
S_LProblems
@Javadoc用Declarartion
SConsole貂
^terminated
Birthday[JavaApplication]C:
\rnyec11pse-&
.5\Genu!
tf
请输入你的生日日期:
InMg丘厢的Eh是;
星期一:
LW齐年:
杲闰年祢现在是:
"
岁
10.1程序运行结果
实验程序代码
//Birthday.java
importjava.util.*;
//Date,Calendar,Scanner
throws
importjava.text.*;
IISimpleDateFormatpublicclassBirthday{
publicstaticvoidmain(Stringargs[])
ParseException{
Stringbirthday,dayOfWeek二"
;
Datedate;
Calendarcalendar;
Scannerscanner=newScanner(System.in);
System.out.println("
请输入你的生日日期:
yyyy-MM-dd"
);
birthday=scanner.next();
//创建一个日期格式对象
SimpleDateFormatdateFormat=newSimpleDateFormat("
//获得一个包含当前日期和时间的Calendar子类的实例calendar=Calendar.getInstance();
intcurrentYear=calendar.get(Calendar.YEAR);
//按输入的birthday产生一个Date对象
date=dateFormat.parse(birthday);
//将date对象的值传递给calendar对象calendar.setTime(date);
intdays=calendar.get(Calendar.DAY_OF_WE);
EK
switch(days){
case1:
dayOfWeek="
星期日"
break;
case2:
星期一"
case3:
星期二"
case4:
星期三"
case5:
星期四"
case6:
dayOfWeek="
星期五”;
break;
case7:
星期六"
}
System.out.println(”你的生日是:
+dayOfWeek);
intbirthYear=calendar.get(Calendar.YEAR
if
(((birthYear%4==0)&
&
(birthYear%100!
=0))||(birthYear%400==0)
)
System.out.println(birthYear+"
年:
是闰年"
else
不是闰年"
intage=currentYear-birthYear;
System.out.println(”你现在是:
+age+"
岁”);
六、设计性实验
1.实验要求
新建、编译、运行InterfaceTest.java文件,实验结果如图
10.2所示:
:
.Problemst<
J^adccZeclaraHar耳普
\*<
.ProDem?
在Ja\adoc@DeelmrationQLonscIs^S
<
tefrninatfd>
InterfaaT«
t[JavaApclicatio*]C;
\myeclif.
terminated*【nterfaceTert[JavaAppicaticr]Ci'
-.rnyeclip》
確册么晴献麒;
皿誠:
-随声昕舟机
In
唏憩听什么7请输入选择;
0-收音机:
L-随戸听手机
b青机播放厂播
随声听发出育乐
軸收訓音量
竜咒随声听音量
关诩也音机
关囲陡声听
*Problems淞JdwadccDeckration|@Console歸xpterminated*lnterfaceTest[JavaApplication]C:
\myeclip»
悔抿昕什么2请输入选择:
A收音机-随声听4手机岸机岌出来电铃声増大手机音量关闭手机
10.2运行结果图
//InterfaceTest.java
importjava.util.Scanner;
代码1//完善此处代码,定义Soundable接口,包含
increaseVolume()、decreaseVolume()、stopSound()、
playSound()四个方法。
classRadioimplementsSoundable{
publicvoidincreaseVolume(){
System.out.println(”增大收音机音量"
publicvoiddecreaseVolume(){
System.out.println(”减小收音机音量"
publicvoidstopSound(){
System.out.println(”关闭收音机"
publicvoidplaySound(){
System.out.println(”收音机播放广播"
classWalkmanimplementsSoundable{
代码2//完善此处代码
classMobilephoneimplementsSoundable{
System.out.println(”增大手机音量”);
System.out.println(”减小手机音量"
System.out.println(”关闭手机"
System.out.println(”手机发出来电铃声"
classPeople{
privateStringname;
privateintage;
publicvoidlisten(Soundables){
s.playSound();
publicclassInterfaceTest{
publicstaticvoidmain(String[]args){
inti;
Peoplesportsman二newPeople();
Scannerscanner=newScanner(System.in);
Soundable[]soundDevice=newSoundable[3];
//往声音设备数组中放入能发声的设备
soundDevice[0]=
soundDevice[1]=
soundDevice[2]=
soundDevice[2]
newRadio();
newWalkman();
代码3;
〃创建手机对象并赋值给
System.out.println(”你想听什么?
请输入选择:
0-收音机
1-随声听2-手机"
i=scanner.nextInt();
//开始听声音sportsman」isten(soundDevice[i]);
调用stopSound()方法
soundDevice[i].increaseVolume();
soundDevice[i].stopSound();
//
2、实验要求
(1)仔细阅读程序清单,完成代莎「~代码2。
(2)为程序增加一个摩托车类Motorcycle,该类也实现了
Transport接口。
程序参考代码
该程序共有5个文件:
Transport.java,Car.java,Ship.java,Plane.java,Interfacetest.java
//Transport.java
publicinterfaceTransport{
publicvoidtravel();
publicvoidstop();
//Car.java
publicclassCarimplementsTransport{
publicvoidtravel(){
System.out.println(”小汽车在公路上行驶”);
publicvoidstop(){
System.out.println(”小汽车停止行驶"
//Ship.java
publicclassShipimplementsTransport{
System.out.println(”轮船在海上航行"
System.out.println(”轮船停止航行"
//Plane.java
publicclassPlaneimplementsTransport{
System.out.println(”飞机在空中飞行"
System.out.println(”飞机停止飞行"
//IntefaceTest.java
importjava.util.Scanner;
publicvoiddrive(Transports){
s.travel();
publicclassInterfaceTest{
publicstaticvoidmain(String[]args){
Peopledriver=newPeople();
Scannerscanner=newScanner(System.in);
Transport[]transport=newTransport[3];
//往交通工具数组中放入能具体的交通工具
transport[O]=newCar();
transport[1]=newShip();
代码1//创建飞机对象并赋值给Transport[2]
System.out.println(”你想驾驶什么?
:
0-小汽车1-轮
船2-飞机"
i=scanner.nextInt();
//司机开始驾驶
driver.drive(transport[i]);
代码2//调用stop()方法