《Java程序设计》实验指导书马程Word格式.docx
- 文档编号:17930120
- 上传时间:2022-12-12
- 格式:DOCX
- 页数:32
- 大小:44.25KB
《Java程序设计》实验指导书马程Word格式.docx
《《Java程序设计》实验指导书马程Word格式.docx》由会员分享,可在线阅读,更多相关《《Java程序设计》实验指导书马程Word格式.docx(32页珍藏版)》请在冰豆网上搜索。
然后让学生独立的练习完成作业,最后验收作业。
让学生真正的掌握每个知识点。
四、考核方式与成绩评定
1、考核方式:
本课程采用理论考试与实验(上机)操作相结合的方式进行考核。
其中,实验考核包括平时上交的作业和期末考试及最后上交的软件项目。
2、课程考核的成绩评定:
成绩五级制计分,最终成绩的构成为平时成绩占20%、期末考试成绩占60%、上交的软件项目成绩占20%(注:
最终成绩的构成比例以有关教学管理制度的规定为依据)。
五、实验学时分配
序号
实验项目名称
学时
实验类型
1
建立Java开发环境
2
基础性
Java语言基础
3
Java面向对象编程基础
4
图形用户界面的设计
5
字符和字节流输入/输出
6
异常处理
7
网络编程
8
多线程
六、实验内容安排(附后)
七、实验教材与参考书
1、《基于JDK6和NetBeans实现》,宋波等,清华大学出版社出版社,2011,第1版。
2、《Java程序设计教程》,杨文军,董玉涛,清华大学出版社出版社,2010,第1版。
3、《Java2参考大全》,HerbertSchildt,清华大学出版社出版社,2011,第1版。
4、《Java编程思想》,BruceEckel,候捷译,机械工业出版社,2002,第2版。
实验一建立Java开发环境
一、实验目的与要求
1、熟悉安装和配置JDK开发环境。
2、熟悉安装和配置IDE开发工具。
3、掌握Java程序编辑、编译和运行的过程。
4、掌握Java程序的构成特点。
5、总结在调试过程中的错误。
二、实验环境
1、计算机硬件:
需满足显存526M,cpu奔四2.0,内存1G,硬盘40G以上。
2、计算机软件:
安装winXP或win2003操作系统,JDK1.6版本,NeatBean6.9.1版本,Eclipse3.1。
三、实验内容和步骤
1、下载、安装并设置JavaSDK软件包。
2、安装JavaIDE软件,解压到jdk安装目录。
3、编写一个简单的Java程序,运行结果为在屏幕上输出“HELLOWORLD!
”。
publicclassHello{
publicstaticvoidmain(Stringargs[]){
System.out.println("
HELLOWORLD!
"
);
}
4、编写一个JavaApplet程序实现功能为:
在屏幕上显示HELLOWORLD!
。
四、思考题
1、什么是Java虚拟机?
它的作用是什么?
2、如何在不同的环境下设置环境变量?
实验二Java语言基础
1、掌握Java基本数据类型、运算符与表达式、数组和字符串的使用方法。
2、掌握各种变量的声明方式。
3、理解Java程序语法结构,掌握顺序结构、选择结构和循环结构语法的程序设计方法。
4、通过以上内容,掌握Java语言的编程规则。
5、了解Java程序文件名和类名的说明方法。
1、编写声明不同数据类型变量的程序文件Java2_1.java,源代码如下:
publicclassJava2_1{
byteb=0x55;
shorts=0x55ff;
inti=;
longl=0xffffL;
charc='
a'
;
floatf=0.23F;
doubled=0.7E-3;
booleanB=true;
StringS="
这是字符串类数据类型"
字节型变量b="
+b);
短整型变量s="
+s);
整型变量i="
+i);
长整型变量l="
+l);
字符型变量c="
+c);
浮点型变量f="
+f);
双精度变量d="
+d);
布尔型变量B="
+B);
字符串类对象S="
+S);
编译并运行该程序。
2、建立Java2_2.java文件,通过本程序了解变量的使用范围,源代码如下。
publicclassJava2_2{
staticinti=10;
{
intk=10;
i="
k="
+k);
//编译时将出错,已出k的使用范围
编译Java2_2.java,此时会出现错误提示。
因为变量k在方法块中声明,在方法块之外它是不存在的,所以编译时会出错。
修改上面的程序,并成功运行该程序。
如程序修改为:
}
编译Java2_2.java,此时会出现错误提示。
如何修改?
3、编程采用冒泡法实现对数组元素由小到大排序,冒泡法排序对相邻的两个元素进行比较,并把小的元素交换到前面。
提示:
关键代码如下:
for(i=0;
i<
intArray.length-1;
i++)
for(j=i+1;
j<
intArray.length;
j++)
if(intArray[i]>
intArray[j]){
t=intArray[i];
intArray[i]=intArray[j];
intArray[j]=t;
4、运行下面的程序Java2_3.java,理解String类常用方法的使用。
publicclassJava2_3{
publicstaticvoidmain(Stringargs[]){
Stringstr="
Ilikejavaprogramming"
inti1=str.indexOf(´
j´
Strings1=str.substring(i1);
Strings2=str.substring(i1,i1+4);
inti2=str.lastIndexOf(´
Strings3=str.substring(i2+5);
s1="
+s1);
s2="
+s2);
s3="
+s3);
5、有一组数,1、2、3、4、5、6、7、8、9、10,要求通过数组移动的方法将其变为6、7、8、9、10、1、2、3、4、5,请编程实现。
1、定义变量的作用是什么?
2、&
和&
&
有什么区别?
3、break和continue在流程控制中的作用是什么?
实验三Java面向对象编程基础
1、理解Java语言是如何体现面向对象编程基本思想。
2、了解类的封装方法,以及如何创建类和对象。
3、掌握成员变量和成员方法的特性及构造方法和析构方法的使用。
4、熟练掌握面向对象程序设计的方法,理解类的继承性和多态性的作用。
1、多态在工资系统中的应用。
下面给出一个根据雇员类型利用多态性完成工资单计算的程序。
定义一个类Employee作为超类,Employee的子类有Boss(每星期发给他固定工资,而不计工作时间)、PieceWorker(按其生产的产品数发放工资)、HourlyWorker(根据工作时间长短发放工资)。
对所有雇员类型都使用earnings()方法完成其工资单的计算,但每个人挣的工资按他所属的雇员类计算,所有雇员类都是从超类Employee派出生的。
所以在超类中声明earnings()方法,该方法没有实质性工作,而是在每个子类都提供恰当的earnings()方法的重写。
为了计算雇员的工资,程序仅使用雇员对象的一个超类引导并调用earnings()方法。
classEmployee{
privateStringfirstName;
privateStringlastName;
publicEmployee(Stringfirst,Stringlast){
firstName=first;
lastName=last;
publicStringgetEmployeeName(){
returnfirstName;
publicStringgetLastName(){
returnlastName;
publicStringtoStrings(){
returnfirstName+'
'
+lastName;
publicdoubleearnings(){
Employ'
ssalaryis0.0"
return0.0;
//定义Boss类,为Employee的子类
classBossextendsEmployee{
privatedoubleweeklySalary;
publicBoss(Stringfirst,Stringlast,doubles){
super(first,last);
setWeeklySalary(s);
publicvoidsetWeeklySalary(doubles){
weeklySalary=(s>
0?
s:
0);
returnweeklySalary;
return"
Boss:
"
+super.toStrings();
//定义PieceWorker类,为Employee的子类
classPieceWorkerextendsEmployee{
privatedoublewagePiece;
privateintquantity;
publicPieceWorker(Stringfirst,Stringlast,doublew,intq){
setWage(w);
setQuantity(q);
publicvoidsetWage(doublew){
wagePiece=(w>
w:
publicvoidsetQuantity(intq){
quantity=(q>
q:
returnquantity*wagePiece;
PieceWoeker:
//定义HourlyWorker类,为Employee的子类
classHourlyWorkerextendsEmployee{
privatedoublewage;
privatedoublehours;
publicHourlyWorker(Stringfirst,Stringlast,doublew,doubleh){
setHours(h);
publicvoidsetWage(doublew){
wage=(w>
publicvoidsetHours(doubleh){
hours=(h>
=0&
h<
168?
h:
returnwage*hours;
HourlyWorker:
publicclassTestEmployee{
publicstaticvoidmain(Stringargs[]){
//使用超类声明ref
Employeeref;
Stringout="
//分别定义各子类
Bossb=newBoss("
Hohn"
"
Smith"
800.00);
PieceWorkerp=newPieceWorker("
Bob"
Lewis"
2.5,200);
HourlyWorkerh=newHourlyWorker("
Karen"
price"
13.75,40);
//使用子类分别实例化
ref=b;
out+=ref.toStrings()+"
earned$"
+ref.earnings()+"
\n"
+b.toStrings()+
earned$"
+b.earnings()+"
System.out.print(out);
ref=p;
out+=ref.toStrings()+"
+p.toStrings()+
+p.earnings()+"
ref=h;
+h.toStrings()+
+h.earnings()+"
2、编程让一个类实现对个自定义的接口。
要求定义两个接口收费和调节温度。
分别定义公交汽车、出租车、电影院,实现以上定义的两个接口。
interfaceCharge{
publicvoidcharging();
interfaceAdapt{
publicvoidcontrolTemperature();
classBusimplementsCharge{
publicvoidcharging(){
System.out.println("
公共汽车:
一元/张,不计算公里数"
}
classTaxisimplementsCharge,Adapt{
出租车:
1.60元/公里,起价3公里"
publicvoidcontrolTemperature(){
安装了Hair空调"
classCinemaimplementsCharge,Adapt{
publicvoidcharging(){
电影院:
门票,十元/张"
publicvoidcontrolTemperature()
{System.out.println("
安装了中央空调"
classExample{
publicstaticvoidmain(Stringargs[]){
Busbusofline7=newBus();
Taxi天宇=new出租车();
电影院红星=new电影院();
七路.收取费用();
天宇.收取费用();
红星.收取费用();
天宇.controlTemperature();
红星.controlTemperature();
1、如何继承一个类?
2、为什么说构造函数是一种特殊的方法?
特殊在哪里?
构造函数什么时候执行?
被谁调用?
3、同名的不同方法共存的情况称为什么?
如何区分这些同名方法?
4、内部类innerclass和外部类的区别?
5、抽象类和接口的区别?
实验四图形用户界面的设计
1、掌握GUI编程中的主要概念:
AWT、Swing、窗口、面板、容器布局、布局管理器。
2、掌握GUI编程。
3、掌握事件编程机制。
1、创建一个黄色面板,通过add()方法在面板中添加了一个按钮,然后将该面板添加到一个JFrame的实例中,JFrame实例的背景被设置为蓝绿色。
importjava.awt.*;
importjavax.swing.*;
publicclassFrameWithPanel{
publicstaticvoidmain(Stringargs[]){
JFrameframe=newJFrame("
FramewithPanel"
ContainercontentPane=frame.getContentPane();
contentPane.setBackground(Color.CYAN);
JPanelpanel=newJPanel();
panel.setBackground(Color.yellow);
JButtonbutton=newJButton("
Pressme"
panel.add(button);
contentPane.add(panel,BorderLayout.SOUTH);
frame.setSize(300,200);
frame.setVisible(true);
2、ActionEvent事件的监听程序定义在组件类中.在Frame中添加一个自定义的命令按钮类(mybutton)对象,让它为注册事件的监听程序。
importjava.awt.event.*;
publicclassActionEventDemo2{
ActionEventDemo2"
//创建自定义组件MyButton的实例
MyButtonb=newMyButton("
Close"
frame.getContentPane().add(b,BorderLayout.CENTER);
frame.pack();
//下面是MyButton类的定义:
classMyButtonextendsJButtonimplementsActionListener{
publicMyButton(Stringtext){
super(text);
//注册事件的监听程序
addActionListen
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java程序设计 Java 程序设计 实验 指导书