度java语言程序设计实验指导书5611.docx
《度java语言程序设计实验指导书5611.docx》由会员分享,可在线阅读,更多相关《度java语言程序设计实验指导书5611.docx(59页珍藏版)》请在冰豆网上搜索。
度java语言程序设计实验指导书5611
实验一:
熟悉java开发环境
一、实验目的
1.了解Java开发运行环境,同时学会设置JDK6.0路径;
2.学习在DOS环境下编译和运行Application程序。
三、实验内容
1.先安装JDK6.0,安装好后,进行JDK6.0路径设置(验证性实验)。
2.在DOS环境下编译和运行程序HelloJava.java,观察运行成果(验证性实验)。
四、实验的软硬件环境要求
硬件环境要求:
PC计算机;内存512MB以上
使用的软件名称、版本号以及模块:
操作系统:
WindowsXP或Windows7
软件:
JDK6.0;DOS环境
五、知识准备
前期要求掌握的知识:
了解如何配置JDK编译环境。
实验相关理论或原理:
JDK(JavaDevelopmentKit)是SunMicrosystems针对Java开发员的产品。
自从Java推出以来,JDK已经成为使用最广泛的JavaSDK。
JDK是整个Java的核心,包括了Java运行环境,Java工具和Java基础的类库。
JDK是学好Java的第一步。
而专门运行在x86平台的Jrocket在服务端运行效率也要比SunJDK好很多。
从SUN的JDK5.0开始,提供了泛型等非常实用的功能,其版本也不断更新,运行效率得到了非常大的提高。
本实验指导书使用最新的jdk1.6.0_02。
六、验证性实验
1.JDK6.0的安装和JDK6.0路径设置
(1)从网上下载JDK6.0,如:
(2)双击后进行JDK6.0的安装,如图1.1所示:
图1.1进入安装界面
(3)点击接受后,可以自定义安装,这里使用安装程序的默认路径:
C:
\ProgramFiles\Java\jdk1.6.0_02\;如图1.2所示:
图1.2设置安装路径,开始自定义安装
(4)点击下一步,就可以安装了如图1.3所示:
图1.3正在安装JDK6.0
(5)等到安装完成会弹出“安装完成”框,如图1.4所示,则完成JDK6.0的安装:
图1.4JDK6.0安装完成
(6)安装好JDK6.0后,可以打开安装的目录如图1.5所示:
图1.6JDK安装好后生成的文件
如果想在系统的任意目录下编译和运行编写好的Java程序,需要先设置环境变量,请按以下步骤配置(记着JDK的默认安装路径C:
\ProgramFiles\Java\jdk1.6.0_02\;)。
(7)鼠标右键单击“我的电脑”,选择“属性”,在弹出对话框中选择“高级”下的环境变量如图1.7所示:
图1.7Windows系统特性界面
(8)在“系统变量”中选择Path,单击“编辑”按钮(如图1.8所示),在弹出的“变量值”文本框中添加“;C:
\ProgramFiles\Java\jdk1.6.0_02\bin”,单击确定按钮(如图1.9所示)。
图1.8Windows系统变量对话框
图1.9编辑系统变量Path
(9)在“系统变量”中单击“新建”按钮(如图1.10所示),在弹出对话框中的“变量名”后输入java_home,“变量值”后输入“C:
\ProgramFiles\Java\jdk1.6.0_02\bin”,单击“确定”按钮(如图1.11所示)。
图1.10选择“新建”系统变量
图1.11新建系统变量java_home
(10)在“环境变量”下单击“新建”按钮,在弹出对话框中的“变量名”后输入classpath,在“变量值”后输入“C:
\ProgramFiles\Java\jdk1.6.0_02\bin\tools.jar;C:
\ProgramFiles\Java\jdk1.6.0_02\jre\lib\rt.jar;.;”,单击“确定”按钮(如图1.12所示结果)。
图1.12新建系统变量classpath
(11)至此环境变量设置完毕,用户可以通过在DOS环境下直接键入javac命令按回车来检查环境变量设置是否成功,如果设置成功则可以看到如图1.12所示结果。
图1.12javac命令的相关使用语法
在以后需要进入DOS命令直接编译和运行Java程序时,只需进入Java程序所在的存放目录,通过javac和Java命令编译和执行相应程序。
2.在DOS环境下编译运行Application—HelloJava.java
(1)实验要求
在试验1所安装的JDK6.0和设置的JDK路径的基础上,使用任意文本编辑器编写程序HelloJava.java(代码见参考代码),编写好后,将文件保存成以HelloJava.java为文件名的文件。
使用DOS命令进入HelloJava.java文件所放的目录(如图1.13所示,如:
C:
\Example),使用javac命令编译该程序,通过编译后再该文件夹中会生成一个名为HelloJava.class的class文件(如图1.14所示),该class文件包含程序的字节码,使用Java命令执行该class文件,可在控制台下看到执行的结果(如图1.16所示)。
图1.13HelloJava.java文件的目录
在DOS环境下使用【cd文件名】格式进入下一级目录,然后键入javacHelloJava.java编译程序。
(可通过cd..返回上一级目录)
图1.14编译程序HelloJava.java
这样打开Example文件,将发现系统自动生成了HelloJava.class文件,如图1.15所示:
图1.15生成了HelloJava.class文件
然后继续输入javaHelloJava命令,按回车后可以发现输出“HelloJava!
”,这也就是程序运行的结果(如图1.16所示)。
图1.16一个Application输出HelloJava
(2)源程序代码参考
publicclassHelloJava{
//输出HelloJava!
//主程序入口
publicstaticvoidmain(String[]args){
System.out.println("HelloJava!
");
}
}
实验二:
对象和类
一、实验名称和性质
所属课程
面向对象程序设计
实验名称
对象和类
实验学时
2
实验性质
✓验证综合✓设计
必做/选做
✓必做选做
二、实验目的
1.理解对象和类,用类建立对象模型;
2.学会如何定义类和创建类的对象;
3.在用构造方法创建对象时理解构造方法的作用;
4.学会使用关键字this访问对象。
三、实验内容
1.编写日期类MyDate,定义日期所用变量并进行初始化,定义修改日期的方法changeDate()用布尔变量flag来实现程序的结束与否,用displayDate()输出日期,用方法showTips()制出菜单,写出main()方法演示程序功能(验证性实验)。
2.编写一个圆类Circle,其中有圆周率,半径和圆对象个数,其中圆周率和圆对象个数为static成员,此外,Circle中还有两个static方法分别是设置圆周率和显示当前圆对象个数的,其余都是实例成员(设计性实验)。
3.编写一个复数类,包含实部和虚部属性,还有复数相加、相减以及复数的求模、输出复数字符串“a+bi”(设计性实验)。
四、实验的软硬件环境要求
硬件环境要求:
PC计算机;内存512MB以上
使用的软件名称、版本号以及模块:
操作系统:
WindowsXP或Windows7
软件:
JDK6.0;DOS环境
五、知识准备
前期要求掌握的知识:
了解Java中类的创建,对象的创建和使用。
实验相关理论或原理:
(1)在Java语言里,对象是一组描述对象的属性和操作方法的集合,其中属性表明对象的状态,方法表明对象的行为。
类是对象的定义。
一个对象具有哪些属性和方法,由类来决定。
从编程角度看,类是一种复合数据类型,它封装了一组变量和方法(函数)。
(2)对象与类是不同但是又紧密相联的概念。
类是对象的定义,对象由类来生成。
类与对象的关系好比铸造车间里模具与产品的关系。
模具只有一个,但是用这个模具可以浇铸出很多成型的产品出来,模具的形状决定了浇铸出来的产品的外形。
在Java语言里用new关键字来生成对象,通常的格式为:
类名对象名=new类名([参数]);
(3)静态变量:
类加载时初始化,全类公有,类名.访问;
成员变量:
创建对象过程中初始化,对象公有,对象.访问。
六、验证性实验
验证性实验1
1.实验要求
创建、编译和运行程序MyDate.java,运行结果如图7.1所示:
图7.1日期类运行结果
2.程序参考代码
//MyDate.java
importjava.util.InputMismatchException;
importjava.util.Scanner;
publicclassMyDate{
intyear;
intmonth;
intday;
intnum_order;//接受来自命令行的输入,int类型,只要负责showTips()的命令代号和日期的修改
booleanflag=true;//控制程序的退出,当flag=false时,退出
publicMyDate(){
year=2012;
month=3;
day=14;
}
//构造函数
publicMyDate(intyear,intmonth,intday){
this.year=year;
this.month=month;
this.day=day;
}
//showTips()用于提示用户相关操作代号
publicvoidshowTips(){
System.out.println("1修改年份");
System.out.println("2修改月份");
System.out.println("3修改日期");
System.out.println("4修改全部");
System.out.println("5退出修改");
}
publicvoidchangeDate(){//修改日期的函数
Scanner_order=newScanner(System.in);
System.out.print("请输入您的命令:
");
//下面的数字异常没有捕获
num_order=_order.nextInt();
if(num_order==1){
System.out.println("请输入新的年份:
");
year=_order.nextInt();
System.out.println();
}elseif(num_order==2){
System.out.println("请输入新的月份:
");
month=_order.nextInt();
System.out.println();
}elseif(num_order==3){
System.out.println("请输入新的日份:
");
day=_order.nextInt();
System.out.println();
}elseif(num_order==4){
System.out.println("请输入新的年份:
");
year=_order.nextInt();
System.out.println("请输入新的月份:
");
month=_order.nextInt();
System.out.println("请输入新的日份:
");
day=_order.nextInt();
System.out.println();
}elseif(num_order==5){
flag=false;
System.out.println("程序结束");
}
}
publicvoiddisplayDate(){//输出现在的日期函数
if(month>=0&&month<=12&&day>=1&&day<=31){
System.out.println("目前的日期为:
"+year+"年"+month+"月"+day
+"日");
}else{
System.out.print("您的输入与设计情况不相符,请确认后重新来过!
");
}
showTips();
changeDate();
}
publicstaticvoidmain(String[]args){
MyDatemydate=newMyDate();
while(mydate.flag){
try{
mydate.displayDate();
}catch(InputMismatchExceptionime){
System.out.print("您的输入与要求不一致,请确定后重新来过!
");
mydate.changeDate();
}
}
}
}
七、设计性实验
【实验一】
1.实验要求
编写一个圆类Circle,其中有圆周率,半径和圆对象个数,其中圆周率和圆对象个数为static成员,此外,Circle中还有两个static方法分别是设置圆周率和显示当前圆对象个数的,其余都是实例成员。
程序运行结果如图7.2所示:
图7.3程序运行结果
2.程序参考代码
//StaticTest.java
classCircle{
staticdoublepi=3.14;
staticintobjectNo=0;
intradius;
Circle(intr){
radius=r;
objectNo++;
}
Circle(){
radius=2;
objectNo++;
}
doublegetArea(){
returnpi*radius*radius;
}
staticvoidsetPI(doublep){
pi=p;
}
voidsetRadius(intr){
radius=r;
}
staticvoiddisplayNo(){
System.out.println("当前圆对象个数是:
"+objectNo);
}
}
publicclassStaticTest{
publicstaticvoidmain(Stringargs[])
{
Circlecir1=newCircle(5);
System.out.println("cir1圆周率是:
"+cir1.pi);
System.out.println("cir1的半径是:
"+cir1.radius);
System.out.println("cir1的面积是:
"+cir1.getArea());
cir1.displayNo();
cir1.setRadius(10);
Circlecir2=newCircle();
cir2.setPI(3.1415);
System.out.println("cir1圆周率是:
"+cir1.pi);
System.out.println("cir1的半径是:
"+cir1.radius);
System.out.println("cir2的半径是:
"+cir2.radius);
System.out.println("cir2的面积是:
"+cir2.getArea());
cir2.displayNo();
}
}
实验三:
图形用户界面程序设计入门
一、实验名称和性质
所属课程
面向对象程序设计
实验名称
图形用户界面程序设计入门
实验学时
2
实验性质
✓验证综合设计
必做/选做
✓必做选做
二、实验目的
1.理解和掌握图形上下文和图形对象的基本概念;
2.了解Color类的构造方法和常用的方法;
3.熟练掌握和运用常用的绘图方法;
4.了解和运用Math类来解决实际问题。
三、实验内容
1.国际象棋棋盘由8行*8列的深浅相间的格子构成。
编写程序绘制基本国际象棋棋盘(验证性实验)。
2.绘制Sin(x)和Cos(x)曲线,编写程序Trigonmetric.java,实现Java中特殊图形的输出(验证性实验)。
四、实验的软硬件环境要求
硬件环境要求:
PC计算机;内存512MB以上
使用的软件名称、版本号以及模块:
操作系统:
WindowsXP或Windows7
软件:
MyEclipse
五、知识准备
前期要求掌握的知识:
Java的Math类和Color类。
实验相关理论或原理:
ColorSpace
此抽象类用做一个颜色空间标记,标识Color对象的特定颜色空间,或者通过ColorModel对象标识Image、BufferedImage或GraphicsDevice的特定颜色空间。
ICC_ColorSpace
ICC_ColorSpace类是抽象ColorSpace类的实现。
ICC_Profile
与设备无关和设备相关颜色空间的颜色配置文件数据表示形式,该表示形式基于国际色彩联盟规范ICC.1:
2001-12,颜色配置文件的文件格式。
ICC_ProfileGray
ICC_Profile类的子类,表示满足以下标准的配置文件:
配置文件的颜色空间类型是TYPE_GRAY,并且配置文件包括grayTRCTag和mediaWhitePointTag标记。
ICC_ProfileRGB
ICC_ProfileRGB类是ICC_Profile类的子类,它表示满足以下标准的配置文件:
配置文件的颜色空间类型是RGB。
验证性实验1
1.实验要求
编写程序Chessboard.java程序,输出国际象棋棋盘如图12.1所示:
12.1JApplet小程序的运行结果
2.实验参考代码
//Chessboard.java
importjava.awt.*;
importjavax.swing.*;
publicclassChessboardextendsJApplet{
intbaseXPosition,baseYPosition;
intcurrentXPosition,currentYPosition;
publicvoidinit(){
baseXPosition=40;//棋盘的开始x位置
baseYPosition=40;//棋盘的开始y位置
setBackground(Color.black);//设置背景颜色黑色
}
publicvoidpaint(Graphicsg){//绘制棋盘
currentXPosition=baseXPosition;//currentXPosition当前的x位置;
currentYPosition=baseYPosition;//currentYPosition当前的y位置;
for(introw=0;row<8;row++){
currentXPosition=baseXPosition+row*40;
for(intcolumn=0;column<8;column++){
if((column+row)%2==0)
g.setColor(Color.blue);//设置棋盘格子的颜色
else
g.setColor(Color.GRAY);//设置棋盘格子的颜色
currentYPosition=baseXPosition+column*40;
g.fillRect(currentXPosition,currentYPosition,40,40);
//在当前位置绘制棋盘的格子,每个格子的大小是40¡Á40像素;
}
}//endfor
}//endpaint;
}
验证性实验2
1.实验要求
编译、运行程序Trigonmetric.java程序,分析通过Math类实现特殊图形的绘制。
结果如图12.2所示:
12.2三角函数图形结果
2.实验参考代码
//Trigonometric.java
importjava.awt.*;
importjavax.swing.*;
publicclassTrigonmetricextendsJFrame{
publicTrigonmetric(){
super();
setTitle("三角函数");
setSize(400,300);
setVisible(true);
}
publicvoidpaint(Graphicsg){
Dimensiond=getSize();
inty1,y2;
g.setColor(Color.black);
inth=d.height/4;
g.drawLine(0,h*2,d.width,h*2);
g.drawLine(h,0,h,d.height);
for(intx=10;x{
y1=h+(int)((1.0+Math.sin((x-10)*0.05))*h);
//求sin曲线y轴坐标
y2=h+(int)((1.0+Math.cos((x-10)*0.05))*h);//求cos曲线y轴坐标
g.setColor(Color.red);
g.drawOval(x,y1,5,5);
g.setColor(Color.blue);
g.drawOval(x,y2,5,5);
}
}
publicstaticvoidmain(Stringargs[]){
Trigonmetrictr=newTrigonmetric();
tr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}