《面向对象程序设计》实验报告.docx
- 文档编号:154324
- 上传时间:2023-04-28
- 格式:DOCX
- 页数:43
- 大小:487.68KB
《面向对象程序设计》实验报告.docx
《《面向对象程序设计》实验报告.docx》由会员分享,可在线阅读,更多相关《《面向对象程序设计》实验报告.docx(43页珍藏版)》请在冰点文库上搜索。
《面向对象程序设计》实验报告
《面向对象程序设计》实验报告
专业_____________
年级_____________
学号_____________
学生姓名_____________
指导老师_____________
华中师范大学信息管理学院编
实验要求
1.上机之前应作好充分的准备工作,预先编好程序,经过人工检查无误后,才能上机,以提高上机效率。
2.独立上机输入和调试自己所编的程序,切忌抄袭、拷贝他人程序。
3.上机结束后,应整理出实验报告。
书写实验报告时,重点放在调试过程和小结部分,总结出本次实验中的得与失,以达到巩固课堂学习、提高动手能力的目的。
实验内容
实验一Java运行环境的下载、安装、配置与运行
【实验目的】
1.掌握下载JavaSDK软件包的方法。
2.掌握设置Java程序运行环境的方法。
3.掌握编写与运行Java程序的方法。
4.为学习Java语言和进行Java程序的实验做好准备工作。
【实验内容】
1.SDK的下载与安装
(1)下载SDK
为了建立基于SDK的Java运行环境,需要先下载Sun的免费SDK软件包。
SDK包含了一整套开发工具,其中包含对编程最有用的是Java编译器、Applet查看器和Java解释器。
(2)安装SDK
运行下载的“jdk-6u43-windows-i586”软件包,可安装SDK,在安装过程中可以设置安装路径及选择组件,如D:
\java,默认的组件选择是全部安装。
(3)SDK中的主要文件夹和文件
2.设置环境变量Path
3.编写源程序
要编写Java程序,可以使用操作系统提供的记事本作为编辑器。
编写在屏幕上显示文字“欢迎你学习Java语言!
”的文件(Hello.java)。
4.编译Java源程序
Java源程序编写后,要使用Java编译器(javac.exe)进行编译,将Java源程序编译成可执行的程序代码。
编译Hello.java。
5.运行Java程序
使用Java解释器(java.exe)可将编译后的字节码文件Hello.class解释为本地计算机代码。
【实验报告】
实习时间:
实习地点:
实习机号:
具
体
实
验
内
容
程
序
调
试
过
程
实
习
小
结
实验二Java语言基础
【实验目的】
1.了解Java的数据类型
2.掌握各种变量的声明方式。
3.理解运算符的优先级。
4.掌握Java基本数据类型、运算符与表达式、数组的使用方法。
5.理解Java程序语法结构,掌握顺序结构、选择结构和循环结构语法的程序设计方法。
6.通过以上内容,掌握Java语言的编程规则。
【实验内容】
1.了解变量的使用范围
(1)建立Exp2_1.java文件,通过本程序了解变量的使用范围,源代码如下。
publicclassExp2_1{
staticinti=10;
publicstaticvoidmain(Stringargs[]){
{
intk=10;
System.out.println("i="+i);
System.out.println("k="+k);
}
System.out.println("i="+i);
System.out.println("k="+k);
}
}
(2)编译Exp2_1.java
此时会出现错误提示,分析错误原因。
因为变量k在方法块中声明,在方法块之外它是不存在的,所以编译时会出错。
2.应用循环语句和switch选择开关语句,设计一个学生成绩管理系统的菜单选择程序。
程序运行后,如图所示。
算法设计:
(1)显示菜单
使用System.out.println()方法将菜单项一项一项在屏幕上显示,界面的边框可以通过多个“-”和“*”拼接起来。
(2)获取用户的键盘输入
在java中,使用简单文本扫描器Scanner类可以接受用户从键盘输入的数据。
Scanner可以从System.in中读取数据。
Scanner实现键盘输入数据的方法如下:
Scannersc=newScanner(System.in);
intselect=sc.nextInt();
使用Scanner类需要在程序最前面引入相应类库,语句为:
importjava.util.*;
(3)菜单项的选择
菜单应根据用户的选择做出不同的反应,因此需要使用分支结构实现选择选项的功能。
根据题意,主菜单含有3个菜单项,属于多分支条件判断,使用带break的switch语句最为合适。
(4)容错处理
当用户输入0、1、2之外的数字时,显示"输入错误,请重新输入!
"。
(5)重复显示主菜单
为了能够使程序能具有重复选择菜单选项的功能,因此需要使用while循环结构。
【实验报告】
实习时间:
实习地点:
实习机号:
具
体
实
验
内
容
程
序
调
试
过
程
实
习
小
结
实验三类与对象
【实验目的】
通过编程和上机实验理解Java语言是如何体现面向对象编程基本思想的,了解用类来封装对象的属性和功能的方法,以及如何创建类和对象,了解成员变量和成员方法的特性,掌握OOP方式进行程序设计的方法。
【实验内容】
1.编写一个Java应用程序,该程序中有两个分类:
Vehicle(用于刻画机动车)和Exp3(主类)。
具体要求如下:
Vehicle类有一个double类型的变量speed,用于刻画机动车的速度,一个int型变量power,用于刻画机动车的功率。
方法定义了speedUp(ints)方法,体现机动车有加速功能。
定义了speedDown()方法,体现机动车有减速功能。
方法定义了setPower(intp)方法,用于设置机动车的功率。
定义了getPower()方法,用于获取机动车的功率。
classVehicle{
【代码1】//声明double型变量speed,刻画速度
【代码2】//声明int型变量power,刻画功率
【代码3】//为Vehicle类定义一个空的构造函数
Vehicle(intpower){
【代码4】//将参数power的值赋值给成员变量power;
}
Vehicle(doublespeed,intpower){
【代码5】//将参数speed的值赋值给成员变量speed;
【代码6】//将参数power的值赋值给成员变量power;
}
voidspeedUp(ints){
【代码7】//将参数s的值与成员变量speed的和赋值给成员变量speed
}
voidspeedDown(intd){
【代码8】//将成员变量speed与参数d的差赋值给成员变量speed
}
voidsetPower(intp){
【代码9】//将参数p的值赋值给成员变量power
}
intgetPower(){
【代码10】//返回成员变量power的值
}
doublegetSpeed(){
returnspeed;
}
}
publicclassExp3{
publicstaticvoidmain(Stringargs[]){
Vehiclecar1;
【代码11】//使用new运算符和空构造方法创建对象car1
【代码12】//car1调用setPower方法将自己的power值设为128
【代码13】//使用new运算符和构造方法创建Vehicle对象car2,并将car2的power值设为76
【代码14】//使用new运算符和构造方法创建Vehicle对象car3,并将car3的speed值设为40.5,power值设为85
System.out.println("car1的功率是:
"+car1.getPower());
System.out.println("car2的功率是:
"+car2.getPower());
System.out.println("car3的功率是:
"+car3.getPower());
【代码15】//car1调用speedUp方法将自己的speed的值增加80
【代码16】//car2调用speedUp方法将自己的speed的值增加100
【代码17】//car3调用speedUp方法将自己的speed的值增加30
System.out.println("car1目前的速度:
"+car1.getSpeed());
System.out.println("car2目前的速度:
"+car2.getSpeed());
System.out.println("car3目前的速度:
"+car3.getSpeed());
car1.speedDown(10);
car2.speedDown(20);
car3.speedDown(30);
System.out.println("car1目前的速度:
"+car1.getSpeed());
System.out.println("car2目前的速度:
"+car2.getSpeed());
System.out.println("car3目前的速度:
"+car3.getSpeed());
}
}
【实验报告】
实习时间:
实习地点:
实习机号:
具
体
实
验
内
容
程
序
调
试
过
程
实
习
小
结
实验四继承
【实验目的】
通过编程和上机实验理解Java语言OOP方式进行程序设计的方法,了解类的继承性。
【实验内容】
编写程序模拟人、中国人、美国人和北京人。
People
height:
double
weight:
double
speakHello():
void
averageHeight():
void
averageWeight():
void
People.java
publicclassPeople{
protecteddoubleweight,height;
publicvoidspeakHello(){
System.out.println("yayayaya");
}
publicvoidaverageHeight(){
height=173;
System.out.println("averageheight:
"+height);
}
publicvoidaverageWeight(){
weight=70;
System.out.println("averageweight:
"+weight);
}
}
ChinaPeople.java
publicclassChinaPeopleextendsPeople{
publicvoidspeakHello(){
System.out.println("您好");
}
publicvoidaverageHeight(){
height=168.78;
System.out.println("中国人的平均身高:
"+height+"厘米");
}
【代码1】//重写publicvoidaverageWeight()方法,输出:
"中国人的平均体重:
65公斤"
publicvoidchinaGongfu(){
System.out.println("坐如钟,站如松,睡如弓");
}
}
AmericanPeople.java
publicclassAmericanPeopleextendsPeople{
【代码2】//重写publicvoidspeakHello()方法,输出"Howdoyoudo"
【代码3】//重写publicvoidaverageHeight()方法,输出"American'saverageheight:
176cm"
publicvoidaverageWeight(){
weight=75;
System.out.println("American'saverageweight:
"+weight+"kg");
}
publicvoidamericanBoxing(){
System.out.println("直拳、钩拳、组合拳");
}
}
BeijingPeople.java
publicclassBeijingPeopleextendsChinaPeople{
【代码4】//重写publicvoidaverageHeight()方法,输出:
"北京人的平均身高:
172.5厘米"
【代码5】//重写publicvoidaverageWeight()方法,输出:
"北京人的平均体重:
70公斤"
publicvoidbeijingOpera(){
System.out.println("花脸、青衣、花旦和老生");
}
}
Example.java
publicclassExample{
publicstaticvoidmain(Stringargs[]){
ChinaPeoplechinaPeople=newChinaPeople();
AmericanPeopleamericanPeople=newAmericanPeople();
BeijingPeoplebeijingPeople=newBeijingPeople();
chinaPeople.speakHello();
americanPeople.speakHello();
beijingPeople.speakHello();
chinaPeople.averageHeight();
americanPeople.averageHeight();
beijingPeople.averageHeight();
chinaPeople.averageWeight();
americanPeople.averageWeight();
beijingPeople.averageWeight();
chinaPeople.chinaGongfu();
americanPeople.americanBoxing();
beijingPeople.beijingOpera();
beijingPeople.chinaGongfu();
}
}
【实验报告】
实习时间:
实习地点:
实习机号:
具
体
实
验
内
容
程
序
调
试
过
程
实
习
小
结
实验五多态性
【实验目的】
通过编程和上机实验理解Java语言OOP方式进行程序设计的方法,了解类的多态性。
【实验内容】
1.了解上转型对象的用法,理解通过上转型对象实行重写多态。
解释【代码2】和【代码4】的执行结果为何不同?
classAnimal{
voidcry(){}
}
classDogextendsAnimal{
voidcry(){
System.out.println("汪汪");
}
}
classCatextendsAnimal{
voidcry(){
System.out.println("喵喵");
}
}
publicclassCryTest{
publicstaticvoidmain(String[]agrs){
【代码1】//使用new运算符创建Dog对象a,并将a指定为Animal类型
【代码2】//调用a的cry()方法
【代码3】//将a指定为Cat类型
【代码4】//调用a的cry()方法
}
}
2.掌握抽象类实现重写多态的用法。
解释【代码6】【代码7】和【代码9】【代码10】的执行结果为何不同?
publicabstractclassAnimal{//抽象类
【代码1】//定义public类型无返回值的抽象方法cry()
【代码2】//定义public类型无返回值的抽象方法eat()
}
publicclassCatextendsAnimal{
publicvoidcry(){
System.out.println("喵星人");
}
publicvoideat(){
System.out.println("猫吃鱼");
}
}
【代码块3】//同Cat类,定义Dog类继承Animal类,并重写Dog类的所有抽象方法
publicclassTest1{
publicstaticvoidmain(String[]args){
【代码4】//定义抽象类Animal的引用变量a
【代码5】//创建一个Cat类的对象赋给a
【代码6】//调用a的cry方法
【代码7】//调用a的eat方法
【代码8】//创建一个Dog类的对象赋给a
【代码9】//调用a的cry方法
【代码10】//调用a的eat方法
}
}
【实验报告】
实习时间:
实习地点:
实习机号:
具
体
实
验
内
容
程
序
调
试
过
程
实
习
小
结
实验六接口
【实验目的】
1.理解Java语言接口的用法。
2.理解通过接口回调实现多态性的用法。
【实验内容】
编写接口程序RunTest.java,通过接口回调实现多态性。
解释【代码4】和【代码6】的执行结果为何不同?
interfaceRunable{
voidrun();
}
classCatimplementsRunable{
publicvoidrun(){
System.out.println("猫急上树..");
}
}
【代码1】//参照Cat类,定义Dog类并实现Runable接口
publicvoidrun(){
System.out.println("狗急跳墙..");
}
}
publicclassRunTest{
publicstaticvoidmain(String[]args){
【代码2】//声明Runable接口变量r
【代码3】//接口变量r中存放一个Cat对象的引用
【代码4】//调用Cat对象的run()方法
System.out.println("-----------");
【代码5】//接口变量r中存放一个Dog对象的引用
【代码6】//调用Dog对象的run()方法
}
}
【实验报告】
实习时间:
实习地点:
实习机号:
具
体
实
验
内
容
程
序
调
试
过
程
实
习
小
结
实验七Swing组件应用
(1)
【实验目的】
了解图形用户界面基本组件窗口、按钮、文本框、选择框、对话框等的使用方法,了解如何使用布局管理器对组件进行管理,以及如何使用Java的事件处理机制。
【实验内容】
1.编写JButtonDemo.java。
(1)使用水平布局放置2个按钮,其中按钮2为图标按钮(使用ImageIcon)。
(2)当按下按钮时弹出相应的对话框。
2.编写JRadioButtonDemo.java。
根据所选按钮改变背景色。
3.编写JCheckBoxDemo.java。
根据所选按钮改变标签的效果。
4.编写JComboBoxDemo.java。
在标签中显示所选列表项内容。
5.编写ColorDialogDemo.java,点击按钮弹出颜色对话框,并用选中的颜色作为窗口的背景色。
【实验报告】
实习时间:
实习地点:
实习机号:
具
体
实
验
内
容
程
序
调
试
过
程
实
习
小
结
实验八Swing组件应用
(2)(选做)
【实验目的】
掌握同时使用多个swing组件设计图形用户界面的方法,了解如何使用布局管理器对组件进行管理,以及如何使用Java的事件处理机制。
【实验内容】
1.编写ItemEventDemo.java,当选中或取消选中单选钮、复选钮和列表框时显示所选的结果。
2.编写GUIExample.java,当选中或取消选中单选钮、复选钮时在标签中显示相应结果。
【实验报告】
实习时间:
实习地点:
实习机号:
具
体
实
验
内
容
程
序
调
试
过
程
实
习
小
结
实验九菜单程序设计
【实验目的】
掌握菜单的使用方法,以及如何使用Java的事件处理机制。
【实验内容】
1.编写菜单程序JMenuDemo.java。
(1)窗口中放置菜单和JTextArea对象。
(2)打开、保存菜单项为图标菜单。
(3)“编辑”菜单实现对JTextArea的剪切、复制和粘贴操作。
.
【实验报告】
实习时间:
实习地点:
实习机号:
具
体
实
验
内
容
程
序
调
试
过
程
实
习
小
结
实验十鼠标事件处理
【实验目的】
掌握鼠标的事件处理机制。
【实验内容】
1.编写鼠标事件响应程序MouseEventDemo.java,当鼠标进入和离开窗口是给出相应显示,当按下、弹起时显示当前鼠标的坐标值。
2.编写鼠标事件响应程序MouseMotionEventDemo.java,当鼠标在窗口内移动时显示鼠标的坐标值。
【实验报告】
实习时间:
实习地点:
实习机号:
具
体
实
验
内
容
程
序
调
试
过
程
实
习
小
结
实验十一键盘和焦点事件处理
【实验目的】
掌握键盘和焦点的事件处理机制。
【实验内容】
1.编写键盘和焦点响应程序FocusKeyEventDemo.ja
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向对象程序设计 面向 对象 程序设计 实验 报告