Java程序设计实验报告.docx

上传人:b****6 文档编号:7030240 上传时间:2023-01-16 格式:DOCX 页数:18 大小:21.69KB
下载 相关 举报
Java程序设计实验报告.docx_第1页
第1页 / 共18页
Java程序设计实验报告.docx_第2页
第2页 / 共18页
Java程序设计实验报告.docx_第3页
第3页 / 共18页
Java程序设计实验报告.docx_第4页
第4页 / 共18页
Java程序设计实验报告.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

Java程序设计实验报告.docx

《Java程序设计实验报告.docx》由会员分享,可在线阅读,更多相关《Java程序设计实验报告.docx(18页珍藏版)》请在冰豆网上搜索。

Java程序设计实验报告.docx

Java程序设计实验报告

(此文档为word格式,下载后您可任意编辑修改!

Java

 

 

实验一JDK开发环境和结构化程序设计

实验学时:

2实验类型:

综合性

一、实验目的

1.熟悉JDK开发环境。

2.熟悉UltraEditNotePad等编辑器编写、编译、运行Java程序。

3.掌握JavaApplication的程序结构和开发过程。

4.掌握Eclipse工具的使用。

5.结构化程序设计

二、实验内容

1.JDK开发环境

(1)J2sdk开发环境安装。

假设JDK的安装路径为C:

\JDK;

(2)设置环境变量PATH和CLASSPATH(如果在autoexec.bat中没有进行设置)。

SETPATH=C:

\JDK\BIN;%PATH%

SETCLASSPATH=.;%CLASSPATH%;d:

\test_java(自己的工作目录)

2.UltraEditNotepad编辑器

练习使用UltraeditNotepad创建Java源程序的方法。

3.掌握JavaApplication程序开发过程

(1)编辑源程序,如下程序:

importjava.io.*;

publicclassHelloWorld1{

publicstaticvoidmain(Stringarg[]){

System.out.println("HelloWorld!

");

}

}

(2)保存文件,(注意大小写)。

可将文件保存在“D:

\test_java\”目录中,注意文件名为HelloWorld1.java。

(3)进入命令行(MS-DOS)方式,设定当前目录为“D:

\test_java\”,运行Java编译器:

D:

\test_java>javacHelloWorld1.java

(4)如果输出错误信息,则根据错误信息提示的错误所在行返回EditPlus编辑器进行修改。

常见错误是类名与文件名不一致、当前目录中没有所需源程序、标点符号全角等。

如果没有输出任何信息或者出现“deprecation”警告,则认为编译成功,此时会在当前目录中生成HelloWorld1.class文件。

(5)利用Java解释器运行这个JavaApplication程序,并查看运行结果。

D:

\test_java>javaHelloWorld1

4.Eclipse开发环境的使用

练习使用Eclipse实现第3步中JavaHelloWorld程序的方法。

5.编程采用冒泡法实现对数组元素由小到大排序。

冒泡法排序对相邻的两个元素进行比较,并把小的元素交换到前面。

publicclass(String[]args){

inti,j,t;

intintArray[]={};

for(i=0;i

for(j=i+1;j

if(intArray[i]>intArray[j]){

t=intArray[i];intArray[i]=intArray[j];intArray[j]=t;

}

for(i=0;i

System.out.println(intArray[i]);

}

}

运行结果为:

1

3

4

5

7

9

1.什么是Java虚拟机?

它的作用是什么?

Java虚拟机是一个想象中的机器,在实际的计算机上通过软件模拟来实现。

Java虚拟机有自己想象中的硬件,如处理器、堆栈、寄存器等,还具有相应的指令系统。

Java语言的一个非常重要的特点就是与平台的无关性。

而使用Java虚拟机是实现这一特点的关键。

一般的高级语言如果要在不同的平台上运行,至少需要编译成不同的目标代码。

而引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。

Java语言使用模式Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。

Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。

2.JavaApplication程序与JavaApplet程序的不同之处有那些?

(1)运行方式不同。

JavaApplication是完整的程序,可以独立运行;JavaApplet程序不能单独运行,它必须嵌入到用HTML语言编写的Web页面中,通过与Java兼容的浏览器来控制执行。

(2)运行工具不同。

JavaApplication程序被编译以后,用普通的Java解释器就可以使其边解释边执行,而JavaApplet必须通过网络浏览器或者Applet观察器才能执行。

(3)程序结构不同。

每个JavaApplication程序必定含有一个并且只有一个main方法,而Applet程序则没有含main方法的主类,这也正是Applet程序不能独立运行的原因。

 (4)受到的限制不同。

JavaApplication程序可以设计成能进行各种操作的程序,包括读写文件的操作,但是JavaApplet对站点的磁盘文件既不能进行读操作,也不能进行写操作。

实验二类与对象

实验学时:

2实验类型:

综合性

一、实验目的

1.掌握类的声明。

2.掌握对象的创建。

3.掌握方法的定义和调用。

4.掌握构造函数的使用。

二、实验内容

1.编程创建一个Box类,在其中定义三个变量表示一个立方体的长、宽和高,再定义一个方法setDemo对这三个变量进行初始化,然后定义一个方法求立方体的体积。

创建一个对象,求给定尺寸的立方体的体积。

publicclassBox{

privatefloati;

privatefloatm;

privatefloatn;

publicvoidSetDemo(floati,floatm,floatn)

{

this.i=i;

this.m=m;

this.n=n;

}

publicvoidVolum()

{

System.out.println(i*m*n);

}

publicstaticvoidmain(String[]args){

Boxa=newBox(8.5f,5.5f,6.0f);

a.SetDemo();

System.out.print("该长方体的体积为:

");

a.Volum();

2.将上题的方法setDemo改用构造函数实现初始化。

publicclassBox{

privatefloati;

privatefloatm;

privatefloatn;

publicBox(floati,floatm,floatn)

{

this.i=i;

this.m=m;

this.n=n;

}

publicvoidVolum()

{

System.out.println(i*m*n);

}

publicstaticvoidmain(String[]args){

Boxa=newBox(8.5f,5.5f,6.0f);

System.out.print("该长方体的体积为:

");

a.Volum();

三、思考题

1.一个方法或一个块内定义的变量是否可以在方法外或块外使用?

这种变量称为什么?

方法的形式参数是否可以在方法之外使用?

一个方法或一个块内定义的变量不可以在方法外或块外使用,这种变量称为局部变量。

方法的形式参数不可以在方法之外使用

2.为什么说构造函数是一种特殊的方法?

特殊在哪里?

构造函数什么时候执行?

被谁调用?

因为它是在创建对象时就调用,当一个对象被创建时构造函数就执行了,它是java虚拟机自动调用的。

3.编程创建一个Point类,在其中定义两个变量表示一个点的坐标值,再定义构造函数初始化为坐标原点,然后定义一个方法实现点的移动,再定义一个方法打印当前点的坐标。

并创建一个对象验证。

publicclassPoint{

privatefloatx;

privatefloaty;

publicPoint(floatx,floaty){

this.x=x;

this.y=y;

}

publicvoidgo(floati,floatj){

System.out.println(+(i-x),+(j-y));

}

publicstaticvoidmain(String[]args){

Pointp=newPoint(3f,6f);

p.go(6f,9f);

}

}

实验三继承与多态

实验学时:

2实验类型:

综合性

一、实验目的

1.掌握类的继承方法。

2.掌握变量的继承和覆盖。

3.掌握方法的继承、重载和覆盖。

4.了解接口的实现方法。

二、实验内容

1.运行下面的程序,理解成员变量的继承与隐藏。

importjava.io.*;

classsum_3{

intsum,num1,num2;

staticintnum3;

定义构造函数初始化对象

sum_3(){

num1=0;

num2=0;

num3=0;

sum=0;

}

}

classsub_sum3extendssum_3{

intsum,num1,num2;隐藏父类sum_3中的实例变量

staticintnum3;隐藏父类sum_3中的类变量

voidsum(inti,intj,intk){

num1=i;

num2=j;

num3=k;

sum=num1+num2+num3;

}

}

publicclasscomputing{

publicstaticvoidmain(Stringarg[]){

sub_sum3m1=newsub_sum3();

m1.sum();

System.out.println("sum="+m1.num1+"+"+m1.num2+"+"+m1.num3+"="+m1.sum);

}

}

打印结果:

sum=100+200+300=600

2.运行下面的程序,理解方法的继承。

classSort3{

doublemax1,max2,max3;

Sort3(){

max1=-1;

max2=-1;

max3=-1;

}

voidsort(){

doubles;

if(max1

s=max1;max1=max2;max2=s;

}

if(max1

s=max1;max1=max3;max3=s;

}

if(max2

s=max2;max2=max3;max3=s;

}

}

}

classsub_Sort3extendsSort3{

voidsubsort(doublei,doublej,doublek){

max1=i;

max2=j;

max3=k;

sort();调用父类中的方法sort()

}

}

publicclassClass1{

publicstaticvoidmain(Stringargs[]){

sub_Sort3m1=newsub_Sort3();

m1.subsort();

System.out.println("三个数从大到小为:

"+m1.max1+","+m1.max2+","+m1.max3);

}

}

打印结果:

三个数从大到小为:

300.0,200.0,100.0

3.运行下面的程序,理解方法的重载。

classSort2or3{

doublemax1,max2,max3;

Sort2or3(){

max1=-1;

max2=-1;

max3=-1;

}

voidsort(doublei,doublej){

doubles;

max1=i;

max2=j;

if(max1

s=max1;max1=max2;max2=s;

}

}

voidsort(doublei,doublej,doublek){

doubles;

max1=i;

max2=j;

max3=k;

if(max1

s=max1;max1=max2;max2=s;

}

if(max1

s=max1;max1=max3;max3=s;

}

if(max2

s=max2;max2=max3;max3=s;

}

}

}

publicclassClass1{

publicstaticvoidmain(Stringargs[]){

Sort2or3m1=newSort2or3();

m1.sort();

System.out.println("两个数从大到小为:

"+m1.max1+","+m1.max2);

m1.sort();

System.out.println("三个数从大到小为:

"+m1.max1+","+m1.max2+","+m1.max3);

}

}

打印结果:

两个数从大到小为:

200.0,100.0

三个数从大到小为:

150.0,100.0,50.0

4.运行下面的程序,理解方法的覆盖。

classsort_Demo{

inti,j,k,swap;

sort_Demo(){

i=j=k=swap=0;

}

voidsort(intt1,intt2[]){父类中的方法用来实现升序

用选择法按升序排列

for(i=0;i

k=i;

for(j=i+1;j

if(t2[j]

if(k!

=i){

swap=t2[i];

t2[i]=t2[k];

t2[k]=swap;

}

}

}

}

classsub_sort_Demoextendssort_Demo{

voidsort(intt1,intt2[]){子类中的方法实现降序

用选择法实现降序排列

for(i=0;i

k=i;

for(j=i+1;j

if(t2[j]>t2[k])k=j;

if(k!

=i){

swap=t2[i];

t2[i]=t2[k];

t2[k]=swap;

}

}

}

}

publicclassClass1{

publicstaticvoidmain(Stringargs[]){

inta[]={119,56};

sort_Demom1=newsort_Demo();

sub_sort_Demom2=newsub_sort_Demo();

System.out.println("排序前的数据为:

");

for(inti=0;i<10;i++)

System.out.print(""+a[i]);

调用父类中的sotr()方法

m1.sort(a.length,a);

System.out.println("\n按升序排列的数据为:

");

for(inti=0;i<10;i++)

System.out.print(""+a[i]);

调用子类中的sort()方法,该方法实现了对父类中方法的覆盖

m2.sort(a.length,a);

System.out.println("\n按降序排列的数据为:

");

for(inti=0;i<10;i++)

System.out.print(""+a[i]);

}

}

打印结果:

排序前的数据为:

341286788239810111956

按升序排列的数据为:

812233456678898101119

按降序排列的数据为:

119101988867563423128

5.定义两个接口,其方法协议分别完成两个数的加法和减法操作,然后创建一个类实现这两个接口的方法。

publicinterfaceArithmetic{

publicintadd(inta,intb);

publicintsub(inta,intb);

}

publicclassIArithmeticimplementsArithmetic{

publicstaticvoidmain(String[]args){

IArithmetici=newIArithmetic();

System.out.println(i.add(2,3));

System.out.println(i.sub(2,3));

}

publicintadd(inta,intb){

returna+b;

}

publicintsub(inta,intb){

returna-b;

}

}

三、思考题

1.子类重新定义与父类方法的方法头完全相同的方法,这种情况称为什么?

方法的重写

2.同名的不同方法共存的情况称为什么?

如何区分这些同名方法?

方法的重载,以参数类型,参数个数和返回值的不同加以区分。

3.创建一个类,声明一个无参数的构造函数,打印类已创建的信息;再重载一个具有String参数的构造函数,打印参数信息;并创建主类验证之。

publicclassTest{

publicTest(){

System.out.println("无参构造!

");

}

publicTest(Stringtemp){

System.out.println("字符串:

"+temp);

}

publicstaticvoidmain(String[]args){

Testt=newTest();

Testt1=newTest("jb=newJButton("do");

jb.addActionListener(this);

j.add(jl);

j.add(jb);

j.setLayout(newFlowLayout());

j.setSize();

j.setLocation();

j.setVisible(true);

}

publicstaticvoidmain(String[]args){

newJframe1();

}

}

2.编程包含一个单选按钮组和一个普通按钮,单选按钮组中包含三个单选,文本说明分别为“普通”、“黑体”和“斜体”。

选择文本标签为“普通”的单选按钮时,普通按钮中的文字为普通字体,选择文本标签为“黑体”的单选按钮时,普通按钮中的文字的字体为黑体,选择文本标签为“斜体”的单选按钮时,普通按钮中的文字的字体为斜体。

importjava.awt.FlowLayout;

importjava.awt.Font;

importjava.awt.event.ActionEvent;

importjava.awt.event.ActionListener;

importjavax.swing.ButtonGroup;

importjavax.swing.JButton;

importjavax.swing.JFrame;

importjavax.swing.JPanel;

importjavax.swing.JRadioButton;

publicclassTypeSetimplementsActionListener{

JFramejf=newJFrame("字体框设置");

JButtonjb=newJButton("你好");

JRadioButtonjrb1=newJRadioButton("普通");

JRadioButtonjrb2=newJRadioButton("黑体");

JRadioButtonjrb3=newJRadioButton("斜体");

ButtonGroupbg=newButtonGroup();

JPaneljp=newJPanel();

publicTypeSet(){

jb.setFont(newFont(jb.getText(),Font.PLAIN,30));

jf.setLayout(newFlowLayout());

bg.add(jrb1);

bg.add(jrb2);

bg.add(jrb3);

jrb1.addActionListener(this);

jrb2.addActionListener(this);

jrb3.addActionListener(this);

jp.add(jrb1);

jp.add(jrb2);

jp.add(jrb3);

jf.add(jp);

jf.add(jb);

jf.setSize();

jf.setLocation();

jf.setVisible(true);

jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

publicvoidactionPerformed(ActionEventae){

Stringcomm=ae.getActionCommand();

if("普通".equals(comm)){

jb.setFont(newFont(jb.getText(),Font.PLAIN,30));

}elseif("黑体".equals(comm)){

jb.setFont(newFont(jb.getText(),Font.BOLD,30));

}elseif("斜体".equals(comm)){

jb.setFont(newFont(jb.getText(),Font.ITALIC,30));

}

}

publicstaticvoidmain(String[]args){

newTypeSet();

}

}

3.编程创建一个Fra

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工作范文 > 行政公文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1