面向对象程序设计 实验指导书学生版本.docx
《面向对象程序设计 实验指导书学生版本.docx》由会员分享,可在线阅读,更多相关《面向对象程序设计 实验指导书学生版本.docx(34页珍藏版)》请在冰豆网上搜索。
面向对象程序设计实验指导书学生版本
面向对象程序设计
(JAVA)
主讲教师:
拓守恒
陕西理工学院数学与计算机科学学院
信息与计算科学教研室
实验一:
Java开发环境的安装及配置
一实验目的
1.了解JAVA语言
2.了解JAVA虚拟机
3.学会JAVA开发环境的搭建
二实验条件
PC电脑一台,Windows或Linux操作系统
三实验内容
1、安装JDK和JRE;
2、复制安装JDK和JRE路径,并且添加到计算机的环境变量中;
3、在DOS命令框中分别输入java和javac命令,并且分别回车,查看环境变量配置是否配置正确就行了。
四实验步骤
1、找到JDK(JavaDevelopmentKit:
Java语言的软件开发工具包)安装包
2、双击JDK安装包,出现下图,点击下一步
3、以下是默认安装路径,安装在C盘,但是我们一般不会使用默认的安装路径(我的JDK安装路径是E:
\Java\JDK_1.7,具体更改如下)
4、更改JDK的安装路径
在要安装的磁盘中建立一个新的文件夹,自己随意命名,然后点击确定按钮,如下图:
上图所示,我们已在E盘建立了一个名为Java的文件夹,接下来双击打开该Java文件夹,
打开之后如下图建立一个新的文件夹用于安装jdk(注意:
本处所建的文件夹是为了分开安装JDK和JRE,方便我们配置环境使用)
以下就是正在安装JDK了
当出现以下界面时,接下来就要安装JRE了(JRE是JavaRuntimeEnvironment缩写,表示Java运行环境)
同之前安装JDK时更改路径一样,更改安装JRE的路径(我的JRE安装路径是E:
\Java\JRE_1.7,具体更改如下)
以下图所示已经更改好路径,然后点击下一步,然后等待安装完成即可:
环境变量的配置:
(按我的配置步骤来的话,需要添加的路径就是:
E:
\Java\JDK_1.7\bin;E:
\Java\JRE_1.7\bin)
首先进入E:
\Java找到之前我们新建的文件夹,如下:
双击JDK_1.7文件夹,找到bin这个文件夹,双击进入下一层,如图:
下面从电脑桌面找到我的电脑图标,右键点击一下,选择属性
然后弹出新的界面,找到高级系统属性,点击,如图所示:
点击高级系统属性之后会出现如下的界面,然后继续单击环境变量:
点击环境变量之后出现新的窗口,然后在用户变量处点击新建,新建的用户变量变量名为Path,变量为我们复制过来的安装JDK的路径,然后点击确定(注意:
复制过来路径后,在改路径后边再加一个英文的分号,因为待会后边还得有一个JRE的路径要添加进来,而路径和路径之间要用分号隔开)
同理,我们回来去找到JRE的安装路径,拷贝过来:
双击进入下一层:
找到bin文件夹,在此单击进入下一层:
拷贝路径E:
\Java\JRE_1.7\bin,回到用户变量,点击编辑按钮,在之前的路径后边添加上刚复制过来的路径:
之后一次点击确定按钮关闭所有窗口
下面就是来测试一下我们刚刚安装的JDK和JRE以及环境变量是不是配置成功了。
找到你键盘上的windows键+R键,同时摁下,将出来运行图框:
如上图输入cmd之后,按一下回车或者点击确定,将进入DOS命令框:
接下来就找到Eclipse中的.EXE可执行文件,双击即可打开Eclipse惊醒java开发了!
操作示意图如下:
实验二:
Java语言基础训练
一实验目的
4.了解JAVA语言
5.了解JAVA基本程序结构
6.学会编写简单的JAVA程序
二实验条件
PC电脑一台,Windows或Linux操作系统
三实验内容
(1)输入、运行给定的JavaApplication程序,写出运行结果,以验证Java语言转义字符的功能。
(2)按照要求编写JavaApplication程序。
四实验步骤
1.输入下面的JavaApplication程序,写出运行结果。
1:
publicclassCharSample{
2:
publicstaticvoidmain(Stringargs[]){
3:
charch1='\b';
4:
charch2='\t';
5:
charch3='\n';
6:
charch4='\r';
7:
charch5='\"';
8:
charch6='\'';
9:
charch7='\\';
10:
System.out.println("陕西"+ch1+"理工大学");
11:
System.out.println("陕西"+ch2+"理工大学");
12:
System.out.println("陕西"+ch3+"理工大学");
13:
System.out.println("陕西"+ch4+ch3+"理工大学");
14:
System.out.println(ch5+"陕西"+"理工大学"+ch5);
15:
System.out.println(ch6+"陕西"+"理工大学"+ch6);
16:
System.out.println(ch7+"陕西"+"理工大学"+ch7);
17:
}
18:
}
运行结果:
?
2.按下面的要求完成JavaApplication程序,写出程序的运行结果。
(1)定义一个Java类Point,用来描述平面直角坐标系中点的坐标,该类应该能描述点的横、纵坐标信息及一些相关操作,包括获取点的横、纵坐标,修改点的坐标,显示点的当前位置等。
(2)定义一个测试类javaTest,创建Point类的对象并对其进行有关的操作。
classPoint{
doublex,y;
publicvoidsetXY(doublea,doubleb){
x=a;
y=b;
}
publicdoublegetX(){
returnx;
}
publicdoublegetY(){
returny;
}
publicvoiddisp(){
System.out.println("点的当前坐标为:
("+x+","+y+")");
}
};
publicclassjavaTest{
publicstaticvoidmain(String[]args){
Pointp1=newPoint();
p1.disp();
p1.setXY(3.2,5.6);
p1.disp();
}
}
运行结果:
?
(3)编写声明不同数据类型变量的程序文件LX2_1.java,源代码如下。
publicclassLX2_1{
publicstaticvoidmain(Stringargs[]){
byteb=0x55;
shorts=0x55ff;
inti=1000000;
longl=0xffffL;
charc='a';
floatf=0.23F;
doubled=0.7E-3;
booleanB=true;
StringS="这是字符串类数据类型";
System.out.println("字节型变量b="+b);
System.out.println("短整型变量s="+s);
System.out.println("整型变量i="+i);
System.out.println("长整型变量l="+l);
System.out.println("字符型变量c="+c);
System.out.println("浮点型变量f="+f);
System.out.println("双精度变量d="+d);
System.out.println("布尔型变量B="+B);
System.out.println("字符串类对象S="+S);
}
}
运行结果
?
(4).建立LX2_2.java文件,通过本程序了解变量的使用范围,源代码如下。
publicclassLX2_2{
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);
//编译时将出错,已出k的使用范围
}
}
实验三:
流程控制
一实验目的
(1)掌握Java运算符的用法。
(2)掌握表达式的使用和各种运算符的优先级控制。
(3)掌握结构化程序设计的基本结构。
二实验条件
PC电脑一台,Windows或Linux操作系统
三实验内容
(1)输入根据给定的JavaApplication程序,写出运行结果,并说明程序所完成的功能。
(2)按照要求编写JavaApplication程序。
四实验步骤
1.输入如下所示的JavaApplication程序,写出运行结果,并说明程序的功能。
1:
importjava.io.*;
2:
publicclassfindNum{
3:
publicstaticvoidmain(Stringargs[]){
4:
Strings;
5:
doubled;
6:
inti;
7:
booleanb=false;
8:
do{
9:
try{
10:
System.out.println("请输入一个浮点数:
");
11:
BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));
12:
s=br.readLine();//以字符串方式读入
13:
i=s.indexOf('.');//找到小数点的位置
14:
d=Double.parseDouble(s);//将字符串转换成浮点数
15:
System.out.println(d+"整数部分为:
"+(long)d);
16:
if(i==-1)//若没有小数点,则没有小数部分
17:
System.out.println(d+"小数部分为:
0.0");
18:
else//若有小数点,则截取小数点后的字符串合成浮点数
19:
System.out.println(d+"小数部分为:
"+Double.parseDouble(((s.charAt(0)=='-')?
"-":
"")+"0."+s.substring(i+1,s.length())));
20:
b=false;
21:
}
22:
catch(NumberFormatExceptionnfe){
23:
System.out.println("输入浮点数格式有误。
\n");
24:
b=true;
25:
}
26:
catch(IOExceptionioe){
27:
b=false;
28:
}
29:
}
30:
while(b);//浮点格式错误时重新输入
31:
}//endofmain
32:
}//endofclass
运行结果:
请输入一个浮点数:
abc
输入浮点数格式有误
请输入一个浮点数:
3.14
3.14的整数部分为:
3
3.14的小数部分为:
0.14
程序功能:
通过IO类从命令行读入一个字符串,如果输入的字符串为非数字字符串,则提示异常,要求重新输入。
如果输入的是一个没有小数点的数字字符串(即整数类型),则将其转换为double型浮点数,最后完成将浮点数的小数位和整数位分别输出。
2.编写一个JavaApplication程序,输出区间[200,300]上的所有素数,要求写出程序的运行结果。
publicclassPrime{
publicstaticvoidmain(String[]args){
inti,j;
outer:
for(i=200;i<=300;i++){
for(j=2;jif(i%j==0)
continueouter;
}
System.out.print(i+"");
}
}
}
运行结果:
?
3.使用switch语句
(1)程序功能:
在不同温度时显示不同的解释说明。
(2)程序源代码如下。
classLX2_8{
publicstaticvoidmain(Stringargs[]){
intc=38;
switch(c<10?
1:
c<25?
2:
c<35?
3:
4){
case1:
System.out.println(""+c+"℃有点冷。
要多穿衣服。
");
case2:
System.out.println(""+c+"℃正合适。
出去玩吧。
");
case3:
System.out.println(""+c+"℃有点热。
");
default:
System.out.println(""+c+"℃太热了!
开空调。
");
}
}
程序运行结果?
4.for循环语句练习
(1)程序功能:
按5度的增量打印出一个从摄氏温度到华氏温度的转换表。
(2)程序源代码如下。
classLX2_9{
publicstaticvoidmain(Stringargs[]){
inth,c;
System.out.println("摄氏温度华氏温度");
for(c=0;c<=40;c+=5){
h=c*9/5+32;
System.out.println(""+c+""+h);
}
}
}
5.while循环语句练习
(1)程序功能:
运行程序后从键盘输入数字1/2/3后,可显示抽奖得到的奖品;如果输入其它数字或字符显示“没有奖品给你!
”。
(2)程序源代码如下。
importjava.io.*;
classLX2_10{
publicstaticvoidmain(Stringargs[])throwsIOException{
charch;
System.out.println("按1/2/3数字键可得大奖!
");
System.out.println("按空格键后回车可退出循环操作.");
while((ch=(char)System.in.read())!
=''){
System.in.skip
(2);//跳过回车键
switch(ch){
case'1':
System.out.println("恭喜你得大奖,一辆汽车!
");
break;
case'2':
System.out.println("不错呀,你得到一台笔记本电脑!
");
break;
case'3':
System.out.println("没有白来,你得到一台冰箱!
");
break;
default:
System.out.println("真不幸,你没有奖品!
下次再来吧。
");
}
}
}
}
6.do…while循环语句练习
(1)程序功能:
求1+2+…+100之和,并将求和表达式与所求的和显示出来。
(2)程序源代码如下。
classLX2_11{
publicstaticvoidmain(Stringargs[]){
intn=1,sum=0;
do{
sum+=n++;
}while(n<=100);
System.out.println("1+2+...+100="+sum);
}
}
7.多重循环练习
(1)输出九九乘法表的程序,源代码如下。
publicclassLX2_12{
publicstaticvoidmain(Stringargs[]){
inti,j,n=9;
System.out.print("*|");
for(i=1;i<=n;i++)
System.out.print(""+i);
System.out.print("\n-------|");
for(i=1;i<=n;i++)
System.out.print("----");
System.out.println();
for(i=1;i<=n;i++){
System.out.print(""+i+"|");
for(j=1;j<=i;j++)
System.out.print(""+i*j);
System.out.println();
}
}
}
实验四:
Java类与对象
一实验目的
(1)理解类与对象的关系。
(2)了解类的封装方法,以及如何创建类和对象。
(3)了解成员变量和成员方法的特性。
(4)掌握OOP方式进行程序设计的方法。
(5)了解类的继承性和多态性的作用。
二实验条件
PC电脑一台,Windows或Linux操作系统
三实验内容
(1).编写一个体现面向对象思想的程序。
(2).编写一个创建对象和使用对象的方法的程序。
(3).编写一个显示当前日期和时间的程序。
(4).编写不同成员变量修饰方法的程序。
(5).编写不同成员方法修饰方法的程序。
四实验步骤
(1)例如:
●编写学生类Student,要求具有属性:
学号,姓名,性别,出生年月日,所在班级。
●
学号:
sno
姓名:
sname
设计相关方法,使其能够修改所有属性。
●
出生年月:
year,month,day
性别:
sex
设计不同的构造方法。
所学专业:
major
入学年份:
beginYear
设置学号:
setSno(…)
获取学号:
getSno(…)
.
.
.
(2)创建2个学生对象
●创建
(1)中类的对象,
●并能够输出学生信息
(3).编写不同成员变量修饰方法的程序。
将Student类中的属性分别设置为public,private,protected,并通过
(2)中创建的学生对象,尝试进行属性访问。
如Students1=newStudent();
s1.sno=“1001”;
(4).编写不同成员方法修饰方法的程序。
将Student类中的方法分别设置为public,private,protected,并通过
(2)中创建的学生对象进行方法调用。
如Students1=newStudent();
s1.setSno(“1001”);
(5)显示系统时间
importjava.util.Date;
importjava.text.SimpleDateFormat;
classShowTime
{
publicstaticvoidmain(String[]args)
{
Datedate=newDate();
SimpleDateFormatdateFormat=newSimpleDateFormat("yyyy/mm/ddhh:
mm:
ss");
Stringtime=dateFormat.format(date);
System.out.println(time);
}
}
实验五:
Java继承与多态
一实验目的
(1)了解继承与多态的概念。
(2)了解类的继承性和多态性的作用。
(3)学会编写继承与多态性程序。
二实验条件
PC电脑一台,Windows或Linux操作系统
三实验内容
(1).编写体现类的继承性(成员变量、成员方法、成员变量隐藏)的程序。
(2).编写体现类的多态性(成员方法重载、构造方法重载)的程序。
四实验步骤
实验五:
学生信息管理系统
一实验目的
(1)综合训练学生面向对象编程
(2)训练多层次嵌套类的关系。
二实验要求
(1)熟悉面向对象编程思想。
(2)熟悉类的继承。
(3)熟悉面向对象多态性编程。
二实验条件
PC电脑一台,Windows或Linux操作系统
三实验内容
(1)编写简单的学生信息管理系统。
(2)要求该系统具有一个“数计学院类”(School_MathAndComputer).
(3)数计学院类中具有可以添加多个班级(Cls),班级有班级编号,班级名称,入学年份,专业名称。
(4)每个班级可以添加多个学生(Student)。
(5)每个学生具有如下属性:
学号,姓名,性别,生日,成绩(可以添加多门课程的成绩)。
要求学号和姓名不能为空。
(6)可以根据班级查询学生信息。
(7)可以根据学号查询学生信息。
四实验步骤