Java语言程序设计实验教案.docx
- 文档编号:23883228
- 上传时间:2023-05-21
- 格式:DOCX
- 页数:44
- 大小:1.31MB
Java语言程序设计实验教案.docx
《Java语言程序设计实验教案.docx》由会员分享,可在线阅读,更多相关《Java语言程序设计实验教案.docx(44页珍藏版)》请在冰豆网上搜索。
Java语言程序设计实验教案
《Java语言程序设计》
实验教案
江峰
第一次实验:
JDK开发工具的使用
一.实验目的
1.掌握使用JDK开发Java程序的步骤。
2.掌握JDK开发环境(环境变量)的设置。
3.掌握Java程序的基本语法,学会编写简单的Java程序。
二.实验要求
1.下载安装JDK软件开发包,并设置环境变量。
2.掌握使用JDK编写Java程序的步骤。
3.编写一个简单的JavaApplication程序。
4.编写一个简单的JavaApplet程序。
三.实验内容
1.JDK开发环境的设置。
为了能正确方便的使用SDK,需要手工配置一些Windows的环境变量,具体步骤如下:
♦在桌面“我的电脑”图标上单击右键,选择“属性”菜单,将出现“系统属性”设置界面
♦在“高级”选项卡中单击“环境变量”按钮。
将出现“环境变量”设置界面
♦在“系统变量”框中单击“新建”按钮,在出现的“新建系统变量”对话框中输入:
变量名(N):
Path
变量值(V):
C:
\ProgramFiles\Java\jdk1.5.0\bin
♦在“系统变量”框中单击“新建”按钮,在出现的“新建系统变量”对话框中输入:
变量名(N):
ClassPath
变量值(V):
.;C:
\ProgramFiles\Java\jdk1.5.0\lib
♦多次点击“确定”按钮,以保存设置。
2.熟悉命令行(MS-DOS)的操作方式。
(1)怎样进入DOS界面:
①“开始”菜单---“程序”---“附件”---“命令提示符”
②“开始”菜单---“运行”---“输入命令cmd”
(2)掌握下面DOS命令:
输入D:
表示进入D盘。
cd文件夹的名字 例如:
cdjava将进入java目录
3.按下面步骤进行实验
(1)开机后,创建目录D:
\java\javacode。
把这个目录作为我们的工作目录。
我们的Java源程序、编译后的字节码文件和用来运行JavaApplet的html文件都放在这个目录中。
(2)在WindowsXP中启动记事本。
(3)用记事本编辑如下源程序
publicclassHelloWorldApp{
publicstaticvoidmain(String[]args){
System.out.println("HelloWorld!
");
}
}
(4)保存程序。
注意,保存源程序时,程序名要与类名一致。
所以用HelloWorldApp.java作为本程序的文件名。
记事本默认的扩展名是.txt,所以要给文件名加引号后保存。
把该文件保存到目录D:
\java\javacode中。
(5)编译程序。
启动MS_DOS窗口,首先键入如下命令,
C:
\DocumentsandSettings\Administrator>D:
由当前目录进入D盘。
接着,键入如下命令,
D:
\>cd\java\javacode
进入源程序所在目录D:
\java\javacode。
最后,键入如下命令,把HelloWorldApp.java编译成字节码文件。
D:
\java\javacode>javacHelloWorldApp.java
如果编译成功,则在D:
\java\javacode目录中生成字节码文件HelloWorldApp.class
(6)运行程序
进入HelloWorldApp.class所在目录D:
\java\javacode,键入命令
D:
\java\javacode>javaHelloWorldApp
就可以运行程序
(7)观察程序的运行结果
(8)如果把上面程序中的第二条语句publicstaticvoidmain(Stringargs[])改成publicvoidmain(Stringargs[])行不行?
如果改成publicstaticvoidmain(Stringarg[])行不行?
不行的话把编译时的错误提示信息记录下来。
4.了解下面的JavaApplet的程序结构和开发过程。
(1)打开Notepad编辑器。
(2)键入如下程序:
importjava.awt.Graphics;
importjava.applet.Applet;
publicclassHelloWorldextendsApplet{
publicvoidpaint(Graphicsg){
g.drawString("HelloWorld!
",25,25);
}
}
(3)检查无误后(注意大小写)保存文件。
可将文件保存在"D:
\java\javacode"目录中,注意文件名为HelloWorld.java。
(4)进入命令行(MS-DOS)方式,进入当前目录为"D:
\java\javacode",键入命令:
D:
\java\javacode\Javacode>javacHelloWorld.java
(5)如果输出错误信息,则根据错误信息提示的错误所在行返回Notepad编辑器进行修改。
常见错误是类名与文件名不一致、当前目录中没有所需源程序、标点符号、全角等。
如果没有输出任何信息或者出现"deprecation"警告,则认为编译成功,此时会在当前目录中生成HelloWorld.class文件。
(6)打开Notepad编辑器,键入如下程序:
Hereistheoutputofmyprogram:
(7)检查无误后(注意大小写)保存文件。
可将文件保存在"D:
\java\javacode"目录中,注意文件名为Hello.html。
(8)进入命令行(MS-DOS)方式,进入当前目录为"D:
\java\javacode",键入命令:
D:
\java\javacode>appletviewerHello.html
(9)如果把
(2)中的程序的前面两条语句:
importjava.awt.Graphics;和
importjava.applet.Applet;删除的话,程序还能不能正常运行?
如果不行请各位同学收集编译时的错误提示信息,并且说明这两条语句的作用。
四、实验总结
请在实验报告中对本次实验内容进行总结。
第二次实验:
Java语言基础练习
一、实验目的
1.了解Java的数据类型
2.掌握各种变量的声明方式及其使用范围。
3.理解Java程序语法结构,掌握顺序结构、选择结构和循环结构语法的程序设计方法。
二、实验要求
1.编写一个声明Java不同数据类型变量的程序。
2.编写一个关于变量的使用范围的程序。
3.编写使用选择结构的程序。
4.编写使用循环结构的程序。
三、实验内容
(一)声明不同数据类型的变量
1.编写声明不同数据类型变量的程序文件KY2_1.java,源代码如下。
publicclassKY2_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);
}
}
2.编译并运行该程序
3.把程序的输出结果写在实验报告中。
如果不给上面程序中的变量赋初始值的话,看看该程序是否还能正确运行?
如果不可以,请指出为什么?
(二)了解变量的使用范围
1.建立KY2_2.java文件,通过本程序了解变量的使用范围,源代码如下。
publicclassKY2_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);
}
}
2.编译KY2_2.java
看看这个程序是否会出错?
为什么会出现编译错误,请在试验报告中给出理由!
3.修改上面的程序,让它能正确运行。
4.把修改后的源程序以及程序的输出结果写在实验报告中。
思考:
KY2_2.java程序说明了什么问题?
(三)使用选择语句
1.程序功能:
使用switch语句在不同温度时显示不同的解释说明。
2.程序源代码如下。
classKY2_3{
publicstaticvoidmain(Stringargs[]){
intc=18;
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+"℃太热了!
开空调。
");
}
}
}
3.编译KY2_3.java
看看这个程序是否会出错?
如果出错,请在试验报告中解释为什么?
4.修改上面的程序,让它能正确运行。
把修改后的源程序以及程序的输出结果写在实验报告中。
(四)使用循环语句
1.请编写程序KY2_4.java,要求程序具有如下功能:
求1+2+…+100之和,并将求和表达式与所求的和都显示出来,即程序的输出结果应该为:
1+2+…+100=5050。
2.编译KY2_4.java
3.运行KY2_4.class
4.把源程序写在实验报告中。
四、实验总结
请在实验报告中对本次实验内容进行总结。
第三次实验:
Java面向对象编程
一、实验目的
1.理解Java语言是如何体现面向对象编程基本思想的;
2.掌握类的声明以及对象的创建;
3.了解类的成员变量和成员方法的特性以及类的构造方法的使用。
二、实验要求
1.编写一个长方体类,通过类中的一个成员方法来初始化类中的成员变量,并通过另外一个方法来计算长方体的体积。
2.编写一个帐户类实现银行帐户的概念,创建帐户类的对象,完成存款与取款等操作。
三、实验内容
1.编程创建一个Box类(长方体),在Box类中定义三个变量,分别表示长方体的长(length)、宽(width)和高(heigth),再定义一个方法voidsetBox(intl,intw,inth)对这三个变量进行初始化,然后定义一个方法intvolume()来计算长方体的体积。
最后,在main()方法中创建一个Box类的对象b,首先通过调用对象b的setBox()方法来设置长方体的长、宽和高,再通过调用对象b的volume()方法来计算这个给定尺寸的长方体的体积,并输出这个结果。
要求:
将程序的源代码写在实验报告上。
并将程序运行结果写在实验报告上。
2.定义一个银行帐户类BankAccount实现银行帐户的概念,在BankAccount类中定义两个变量:
"帐号"(account_number)和"存款余额"(leftmoney),再定义四个方法:
"存款"(savemoney)、"取款"(getmoney)、"查询余额"(getleftmoney)、构造方法(BankAccount)。
最后,在main()方法中创建一个BankAccount类的对象ba,假设ba的账号为:
123456,初始的存款余额为500元。
首先向该账户存入1000元,再取出2000元。
要求:
将下面源代码中的空白处填上,并写在实验报告上。
将程序运行结果写在实验报告上。
源代码的提示如下:
……
publicdoublegetmoney(){//取款
……
}
publicvoidsavemoney(doublemoney){//存款
leftmoney+=money;
}
publicvoidgetleftmoney(doublemoney){//查询余额
……
}
publicBankAccount(intnumber,doublemoney){//构造方法,用来初始化变量
……
}
publicstaticvoidmain(Stringargs[]){
……
ba.savemoney(1000);
System.out.println("存入1000元后,您的余额为:
"+ba.getleftmoney());
ba.getmoney(2000);
System.out.println("取款2000元后,您的余额为:
"+ba.getleftmoney());
}
……
四、思考题
1.说明什么是构造方法,构造方法有哪些特点?
2.如果程序中有多个类时,如何来确定源程序文件的名称?
第四次实验:
修饰符与继承性
一、实验目的
了解如何使用类及其成员的修饰符,理解类的继承性,掌握方法的继承、重载和覆盖。
二、实验要求
1.编写如何使用类及其成员的修饰符的程序。
2.编写如何通过传递参数来调用方法的程序。
3.编写体现类的继承性(成员变量、成员方法的继承)的程序。
三、实验内容
(一)使用修饰符
有时需要公开一些变量和方法,有时需要禁止其他对象使用变量和方法,这时可以使用修饰符来实现这个目的。
常用的修饰符有:
public,private,protected,package,static,final,abstract等。
1.程序功能:
通过两个类StaticDemo、KY4_1来说明类变量与对象变量,以及类方法与对象方法的区别。
2.编写源程序KY4_1.java,程序源代码如下。
classStaticDemo{
staticintx;
inty;
publicstaticintgetX(){
returnx;
}
publicstaticvoidsetX(intnewX){
x=newX;
}
publicintgetY(){
returny;
}
publicvoidsetY(intnewY){
y=newY;
}
}
publicclassKY4_1{
publicstaticvoidmain(String[]args){
System.out.println("类变量x="+StaticDemo.getX());
System.out.println("对象变量y="+StaticDemo.getY());
StaticDemoa=newStaticDemo();
StaticDemob=newStaticDemo();
a.setX
(1);
a.setY
(2);
b.setX(3);
b.setY(4);
System.out.println("类变量a.x="+a.getX());
System.out.println("对象变量a.y="+a.getY());
System.out.println("类变量b.x="+b.getX());
System.out.println("对象变量b.y="+b.getY());
}
}
3.编译并运行程序KY4_1.java,看看该程序是否有错?
如果有错请在实验报告中指出出错的地方,出错的原因,并给出修改意见以及程序正确运行的结果。
(二)方法中参数传递的练习
1.编写一个程序文件KY4_2.java。
2.程序功能如下:
有一个主方法main()以及一个求平方和的方法intsquare(intx,inty)。
square方法计算参数x和y的平方和,并返回该平方和值。
在主方法main中定义两个整型变量,并给它们赋一个初值,然后使用这两个变量作为实际参数来调用square方法,求出平方和,最后输出平方和。
3.请将程序KY4_2.java的源代码写在实验报告中。
(三)类的继承性练习
1.进一步理解继承的含义
新类可从现有的类中产生,并保留现有类的成员变量和方法并可根据需要对它们加以修改。
新类还可添加新的变量和方法。
这种现象就称为类的继承。
当建立一个新类时,不必写出全部成员变量和成员方法。
只要简单地声明这个类是从一个已定义的类继承下来的,就可以引用被继承类的全部成员。
被继承的类称为父类或超类(superclass),这个新类称为子类。
Java提供了一个庞大的类库让开发人员继承和使用。
设计这些类是出于公用的目的,因此,很少有某个类恰恰满足你的需要。
你必须设计自己的能处理实际问题的类,如果你设计的这个类仅仅实现了继承,则和父类毫无两样。
所以,通常要对子类进行扩展,即添加新的属性和方法。
这使得子类要比父类大,但更具特殊性,代表着一组更具体的对象。
继承的意义就在于此。
2.编写两个程序文件KY4_3.java和KY4_4.java,实现类的继承。
3.KY4_3.java的代码如下:
publicclassKY4_3
{
protectedStringxm;//姓名
protectedintxh;//学号
voidsetdata(Stringm,inth)//该方法为姓名和学号赋初始值
{
xm=m;
xh=h;
}
publicvoidprint()//输出学生的姓名和学号
{
System.out.println(xm+","+xh);
}
}
4.编译KY4_3.java,产生类文件KY4_3.class。
注意:
暂时不运行程序KY4_3.class。
5.编写一个程序文件KY4_4.java。
程序功能如下:
子类KY4_4继承父类KY4_3,其不仅具有父类的成员变量xm(姓名)、xh(学号),还定义了新的成员变量xy(学院)、xi(系)。
在子类KY4_4中重写了父类的方法print(),在该方法中不仅输出学生的姓名和学号,而且还输出学生的学院和系。
另外,在子类KY4_4中还定义了一个主方法main。
首先,在主方法中创建一个父类KY4_3的对象f,设置f的姓名为"帅零",学号为"12321",并且调用print()方法输出对象f的姓名和学号。
接着,在主方法中创建一个子类KY4_4的对象s,设置s的姓名为"郭娜",学号为"12345",学院为"经济管理学院",系为"信息管理系",并且调用print()方法输出对象s的姓名,学号,学院和系。
6.编译并运行程序KY4_4.java。
请将KY4_4的源程序以及运行结果写在实验报告中。
注意:
父类KY4_3与子类KY4_4要在同一文件夹(路径)内。
四、思考题
1.说明类的继承和多态都有什么作用?
第五次实验:
类的多态性
一、实验目的
理解类的多态性,掌握方法的继承、重载和覆盖,掌握如何从键盘输入数据以及多重循环的使用。
二、实验要求
4.编写体现类的多态性(成员方法重载)的程序。
5.编写构造方法重载的程序。
6.编写使用键盘来输入数据的程序。
7.编写使用多重循环的程序。
三、实验内容
(一)类的多态性练习
1.理解类的多态性
类的继承发生在多个类之间,而类的多态只发生在同一个类上。
在一个类中,可以定义多个同名的方法,只要确定它们的参数个数和类型不同。
这种现象称为类的多态。
多态使程序简洁,为程序员带来很大便利。
在OOP中,当程序要实现多个相近的功能时,就给相应的方法起一个共同的名字,用不同的参数代表不同的功能。
这样,在使用方法时不论传递什么参数,只要能被程序识别就可以得到确定的结果。
类的多态性体现在方法的重载(overload)上,包括成员方法和构造方法的重载。
2.方法的重载
方法的重载是指对同名方法的不同使用方式。
1)程序功能:
对不同的数进行排序输出。
在IntSort类中定义2个同名的方法sort。
2)编写KY5_1.java文件,源代码如下。
classIntSort{
publicStringsort(inta,intb){
if(a>b)
returna+""+b;
else
returnb+""+a;
}
publicStringsort(inta,intb,intc){
intswap;
if(a
swap=a;
a=b;
b=swap;
}
if(a swap=a; a=c; c=swap; } if(b swap=b; b=c; c=swap; } returna+""+b+""+c; } } publicclassKY5_1{ publicstaticvoidmain(Stringargs[]) { inta=30,b=12,c=40; IntSorts=newIntSort(); S
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 语言程序设计 实验 教案
![提示](https://static.bdocx.com/images/bang_tan.gif)