System.out.print(i[x]+"、");
}
}
}
对照范例写出如下题目:
(1).创建GrandFather类,其中包括
a)属性:
姓名(name),年龄(age)
b)方法getGrandFather():
显示爷爷的信息
c)构造方法:
给爷爷的姓名,年龄赋值
(2).创建Father类,继承Grandfather类
a)属性:
除了继承爷爷的属性以外,还要增加自己的属性:
“职业”(occupation)
b)构造方法:
显式调用父类的构造方法,为Father类的姓名和年龄赋初始值。
再为职业输入初始值。
c)方法getFather():
显示父亲的相关信息
(3).创建ClassMain()类,定义main()方法,构造GrandFather类的对象和Father类的对象,并分别显示详细信息。
3、面向对象多态性
范例:
计算柱体的体积。
柱体体积计算公式是:
底部面积乘以高度
柱体底部分为圆形和矩形
要求:
通过抽象类和多态实现
packagecn.jit.demo;
abstractclassBottom{//父类抽象类底部
publicabstractdoublecalculatorArea();
}
classCircleBottomextendsBottom{//圆形底
/**
*半径
*/
privatedoubleradius;
@Override
publicdoublecalculatorArea(){
returnMath.PI*radius*radius;
}
publicdoublegetRadius(){
returnradius;
}
publicvoidsetRadius(doubleradius){
this.radius=radius;
}
publicCircleBottom(doubleradius){
super();
this.radius=radius;
}
}
classSquareBottomextendsBottom{//矩形底
privatedoublesideA;
privatedoublesideB;
publicdoublegetSideA(){
returnsideA;
}
publicvoidsetSideA(doublesideA){
this.sideA=sideA;
}
publicdoublegetSideB(){
returnsideB;
}
publicvoidsetSideB(doublesideB){
this.sideB=sideB;
}
@Override
publicdoublecalculatorArea(){
returnsideA*sideB;
}
publicSquareBottom(doublesideA,doublesideB){
super();
this.sideA=sideA;
this.sideB=sideB;
}
}
classZhuTi{//柱体类,完成形状的拼装
/**
*底
*/
privateBottombottom;
/**
*高
*/
privatedoubleheight;
/**
*计算体积
*@return
*/
publicdoublecalculatorVolumn(){
returnbottom.calculatorArea()*height;
}
publicZhuTi(Bottombottom,doubleheight){
super();
this.bottom=bottom;
this.height=height;
}
publicBottomgetBottom(){
returnbottom;
}
publicvoidsetBottom(Bottombottom){
this.bottom=bottom;
}
publicdoublegetHeight(){
returnheight;
}
publicvoidsetHeight(doubleheight){
this.height=height;
}
publicvoidchangeBottom(Bottombottom){
this.bottom=bottom;
}
}
publicclassVolumnTest{//测试类
publicstaticvoidmain(String[]args){
Bottombottom=newCircleBottom(1.0);
doubleheight=1.0;
ZhuTizhuTi=newZhuTi(bottom,height);
doubleresult=zhuTi.calculatorVolumn();
System.out.println("圆柱体的体积是:
"+result);
bottom=newSquareBottom(1.0,1.0);
zhuTi.changeBottom(bottom);
result=zhuTi.calculatorVolumn();
System.out.println("立方体的体积是:
"+result);
}
}
范例:
接口和多态的应用,例如:
电脑上实现了USB接口,U盘,打印机等等也都实现了此标准。
interfaceUSB{
publicvoidstart();//开始工作
publicvoidstop();//结束工作
}
classComputer{
publicstaticvoidplugin(USBusb){
usb.start();
usb.stop();
}
};
classFlashimplementsUSB{
publicvoidstart(){
System.out.println("U盘开始工作。
");
}
publicvoidstop(){
System.out.println("U盘停止工作。
");
}
};
classPrintimplementsUSB{
publicvoidstart(){
System.out.println("打印机开始工作。
");
}
publicvoidstop(){
System.out.println("打印机停止工作。
");
}
};
publicclassInterPolDemo02{
publicstaticvoidmain(Stringargs[]){
Computer.plugin(newFlash());
Computer.plugin(newPrint());
}
};
对照范例,写出以下程序:
(1)乐器(Instrument)的标准为弹奏(play),而乐器类型分为:
钢琴(Piano)和小提琴(Violin),各种乐器的弹奏方法各不同。
编写代码实现不同乐器的弹奏。
(2)计算机模拟
四、实验结果与分析(程序运行结果及其分析)
五、实验体会
实验项目名称:
类集实验学时:
4
同组学生姓名:
实验地点:
实验日期:
实验成绩:
批改教师:
批改时间:
实验2类集
一、实验目的和要求
(1)理解类集概念
(2)熟悉Collection接口、List接口、Set接口和Map接口
(3)掌握ArrayList类、HashSet类和TreeSet类
(4)理解TreeMap、HashMap
二、实验仪器和设备
奔腾以上个人计算机,windows操作系统。
配置好JDK环境,安装集成开发环境(Eclipse)
三、实验内容与过程
1、类集应用
范例:
实现一个超市管理系统,要求可以添加货物,删除货物和查询货物:
。
代码如下:
publicinterfaceGoods{
publicStringgetName();//得到商品名称
publicintgetCount();//得到商品数量
publicfloatgetPrice();//得到商品价格
}
publicclassBookimplementsGoods{
privateStringname;
privateintcount;
privatefloatprice;
publicBook(){
}
publicBook(Stringname,intcount,floatprice){
this.name=name;
this.count=count;
this.price=price;
}
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name=name;
}
publicintgetCount(){
returncount;
}
publicvoidsetCount(intcount){
this.count=count;
}
publicfloatgetPrice(){
returnprice;
}
publicvoidsetPrice(floatprice){
this.price=price;
}
publicbooleanequals(Objectobj){
if(this==obj){
returntrue;
}
if(!
(objinstanceofBook)){
returnfalse;
}
Bookb=(Book)obj;
if(b.name.equals(this.name)&&b.count==this.count
&&b.price==this.price){
returntrue;
}else{
returnfalse;
}
}
publicinthashCode(){
returnthis.name.hashCode()+newInteger(this.count).hashCode()
+newFloat(this.price).hashCode();
}
publicStringtoString(){
return"书名:
"+this.name+";书的价格:
"+this.price+";书的数量:
"
+this.count;
}
}
importjava.util.ArrayList;
importjava.util.Iterator;
importjava.util.List;
publicclassSuperMarket{
privateListallGoods;
publicSuperMarke