Java程序设计实验2Word文档格式.docx

上传人:b****5 文档编号:17698522 上传时间:2022-12-08 格式:DOCX 页数:22 大小:68.63KB
下载 相关 举报
Java程序设计实验2Word文档格式.docx_第1页
第1页 / 共22页
Java程序设计实验2Word文档格式.docx_第2页
第2页 / 共22页
Java程序设计实验2Word文档格式.docx_第3页
第3页 / 共22页
Java程序设计实验2Word文档格式.docx_第4页
第4页 / 共22页
Java程序设计实验2Word文档格式.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

Java程序设计实验2Word文档格式.docx

《Java程序设计实验2Word文档格式.docx》由会员分享,可在线阅读,更多相关《Java程序设计实验2Word文档格式.docx(22页珍藏版)》请在冰豆网上搜索。

Java程序设计实验2Word文档格式.docx

批改时间:

实验1面向对象编程实验

一、实验目的和要求

(1)理解Java概念、掌握JDK环境配置

(2)熟悉Java开发过程

(3)掌握Java面向对象编程基础:

封装、继承、多态

(4)掌握Java接口编程,理解开发模式

二、实验仪器和设备

奔腾以上个人计算机,windows操作系统。

配置好JDK环境,安装集成开发环境(Eclipse)

三、实验内容与过程

1、JDK环境配置

2、面向对象的封装性

范例:

设计一个表示学生的类,里面有学生的三项成绩:

计算机成绩、数学成绩、英语成绩。

要求可以求总分、平均分、最高分、最低分,并且可以输出一个学生的完整信息。

代码如下:

classStudent{

privateStringname;

privateintage;

privatefloatenglish;

privatefloatcomputer;

privatefloatmath;

publicStudent(){}

publicStudent(Stringn,inta,floate,floatc,floatm){

this.setName(n);

this.setAge(a);

this.setEnglish(e);

this.setComputer(c);

this.setMath(m);

}

publicfloatsum(){

returnenglish+computer+math;

publicfloatavg(){

returnthis.sum()/3;

publicfloatmax(){

floatmax=computer>

math?

computer:

math;

max=max>

english?

max:

english;

returnmax;

publicfloatmin(){

floatmin=computer<

min=min<

min:

returnmin;

publicStringgetInfo(){

return"

学生信息:

\n"

+

"

\t|-姓名:

"

+this.getName()+"

\n"

\t|-年龄:

+this.getAge()+"

\t|-数学成绩:

+this.getMath()+"

\t|-英语成绩:

+this.getEnglish()+"

\t|-计算机成绩:

+this.getComputer();

publicvoidsetName(Stringn){

name=n;

publicvoidsetAge(inta){

age=a;

publicvoidsetEnglish(floate){

english=e;

publicvoidsetComputer(floatc){

computer=c;

publicvoidsetMath(floatm){

math=m;

publicStringgetName(){

returnname;

publicintgetAge(){

returnage;

publicfloatgetEnglish(){

returnenglish;

publicfloatgetComputer(){

returncomputer;

publicfloatgetMath(){

returnmath;

}

publicclassExecDemo{

publicstaticvoidmain(Stringargs[]){

Studentstu=newStudent("

张三"

30,89.0f,91.0f,87.0f);

System.out.println("

总分:

+stu.sum());

平均分:

+stu.avg());

最高分:

+stu.max());

最低分:

+stu.min());

System.out.println(stu.getInfo());

对照范例写出如下题目:

(1)编写并测试一个代表地址的Address类,包括以下的属性:

国家、省份、城市、街道、邮编。

可以从此地址类中得到一个完整的地址信息。

(2)定义并测试一个代表员工的Employee类。

它的属性包括“员工姓名”、“员工号码”、“员工基本薪水”,它的方法包括“构造方法”、“获取员工姓名”、“获取员工号码”、“获取员工基本薪水”、“设置员工姓名”、“设置员工号码”、“设置员工基本薪水”、所有员工信息的输出getInfo。

(3)、定义一个圆形类,可以返回圆的面积与周长。

classCircle{

成员变量半径r

构造方法

成员函数设置和获取半径

计算周长

计算面积

所有信息输出

定义一个矩形类,返回矩形的面积与周长

(4)、思考设计:

一个人有一本书,一本书属于一个人。

//一个人有一本书,一本书属于一个人

//类新的类别、类型定义新的数据类型

//两个类的关系独立的两个类使用

classPerson{

privateStringname;

privateintage;

privateBookbook;

//一个人有一本书

publicPerson(){

publicPerson(Stringname,intage){

this.name=name;

this.age=age;

publicvoidsetBook(Bookbook){

this.book=book;

publicBookgetBook(){

returnthis.book;

classBook{

privatefloatprice;

privatePersonperson;

//一本书属于一个人

publicBook(){

publicBook(Stringname,floatprice){

this.name=name;

this.price=price;

publicvoidsetPerson(Personperson){

this.person=person;

publicPersongetPerson(){

returnthis.person;

publicclassTestBP{

Personper=newPerson("

zhangsan"

20);

Bookbok=newBook("

Javaprogram"

20.0f);

per.setBook(bok);

bok.setPerson(per);

//一本书属于一个人

per.getBook().getPrice();

bok.getPerson().getName();

3、面向对象的继承性

范例:

要求定义一个数组类Array,里面定义了一个整型数组,但是此整型数组属于动态分配大小,即:

所有的大小由程序指定,并在此基础上实现以下的两个子类:

反转类:

可以将数组的内容反转排列

排序类:

可以对数组进行排序的操作

classArray{

privateinttemp[]=null;

//只是声明数组,但是大小未知

privateintfoot=0;

//用于保存下一个的记录点

publicArray(intlen){

if(len>

0){

this.temp=newint[len];

//此时大小由外部决定

}else{

this.temp=newint[1];

//至少开辟一个空间

}

publicbooleanadd(inti){//加入数据操作

if(this.foot<

this.temp.length){//还有空位

this.temp[this.foot]=i;

//加入内容

this.foot++;

//改变长度

returntrue;

//加入成功返回true

returnfalse;

//加入失败

publicint[]getArray(){//返回全部的数组

returnthis.temp;

classSortArrayextendsArray{

publicSortArray(intlen){

super(len);

publicint[]getArray(){

java.util.Arrays.sort(super.getArray());

//排序操作

returnsuper.getArray();

//返回的是排序后的内容

classReverseArrayextendsArray{

publicReverseArray(intlen){

intrt[]=newint[super.getArray().length];

//根据大小开辟新数组

intcount=rt.length-1;

for(intx=0;

x<

super.getArray().length;

x++){

rt[count]=super.getArray()[x];

count--;

returnrt;

publicclassArrayDemo{

ReverseArrayarr=newReverseArray(6);

System.out.println(arr.add(3));

System.out.println(arr.add(23));

System.out.println(arr.add

(1));

System.out.println(arr.add(5));

System.out.println(arr.add(6));

System.out.println(arr.add(8));

System.out.println(arr.add(11));

System.out.println(arr.add(16));

print(arr.getArray());

publicstaticvoidprint(inti[]){

i.length;

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();

classSquareBottomextendsBottom{//矩形底

privatedoublesideA;

privatedoublesideB;

publicdoublegetSideA(){

returnsideA;

publicvoidsetSideA(doublesideA){

this.sideA=sideA;

publicdoublegetSideB(){

returnsideB;

publicvoidsetSideB(doublesideB){

this.sideB=sideB;

returnsideA*sideB;

publicSquareBottom(doublesideA,doublesideB){

classZhuTi{//柱体类,完成形状的拼装

*底

privateBottombottom;

*高

privatedoubleheight;

*计算体积

*@return

publicdoublecalculatorVolumn(){

returnbottom.calculatorArea()*height;

publicZhuTi(Bottombottom,doubleheight){

this.bottom=bottom;

this.height=height;

publicBottomgetBottom(){

returnbottom;

publicvoidsetBottom(Bottombottom){

publicdoublegetHeight(){

returnheight;

publicvoidsetHeight(doubleheight){

publicvoidchangeBottom(Bottombottom){

publicclassVolumnTest{//测试类

publicstaticvoidmain(String[]args){

Bottombottom=newCircleBottom(1.0);

doubleheight=1.0;

ZhuTizhuTi=newZhuTi(bottom,height);

doubleresult=zhuTi.calculatorVolumn();

圆柱体的体积是:

+result);

bottom=newSquareBottom(1.0,1.0);

zhuTi.changeBottom(bottom);

result=zhuTi.calculatorVolumn();

立方体的体积是:

接口和多态的应用,例如:

电脑上实现了USB接口,U盘,打印机等等也都实现了此标准。

interfaceUSB{

publicvoidstart();

//开始工作

publicvoidstop();

//结束工作

classComputer{

publicstaticvoidplugin(USBusb){

usb.start();

usb.stop();

};

classFlashimplementsUSB{

publicvoidstart(){

U盘开始工作。

publicvoidstop(){

U盘停止工作。

classPrintimplementsUSB{

打印机开始工作。

打印机停止工作。

publicclassInterPolDemo02{

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

1、类集应用

实现一个超市管理系统,要求可以添加货物,删除货物和查询货物:

publicinterfaceGoods{

publicStringgetName();

//得到商品名称

publicintgetCount();

//得到商品数量

publicfloatgetPrice();

//得到商品价格

}

publicclassBookimplementsGoods{

privateintcount;

publicBook(){

publicBook(Stringname,intcount,floatprice){

this.name=name;

this.count=count;

this.price=price;

pub

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

当前位置:首页 > PPT模板 > 动物植物

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1