Java程序设计实验报告Word格式文档下载.docx
- 文档编号:22941214
- 上传时间:2023-02-06
- 格式:DOCX
- 页数:21
- 大小:21.63KB
Java程序设计实验报告Word格式文档下载.docx
《Java程序设计实验报告Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《Java程序设计实验报告Word格式文档下载.docx(21页珍藏版)》请在冰豆网上搜索。
\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程序,并查看运行结果。
javaHelloWorld1
4.Eclipse开发环境的使用
练习使用Eclipse实现第3步中JavaHelloWorld程序的方法。
5.编程采用冒泡法实现对数组元素由小到大排序。
冒泡法排序对相邻的两个元素进行比较,并把小的元素交换到前面。
publicclass(String[]args){
inti,j,t;
intintArray[]={};
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;
}
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对站点的磁盘文件既不能进行读操作,也不能进行写操作。
实验二类与对象
综合性
一、实验目的
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改用构造函数实现初始化。
publicBox(floati,floatm,floatn)
三、思考题
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);
}
实验三继承与多态
1.掌握类的继承方法。
2.掌握变量的继承和覆盖。
3.掌握方法的继承、重载和覆盖。
4.了解接口的实现方法。
1.运行下面的程序,理解成员变量的继承与隐藏。
classsum_3{
intsum,num1,num2;
staticintnum3;
定义构造函数初始化对象
sum_3(){
num1=0;
num2=0;
num3=0;
sum=0;
classsub_sum3extendssum_3{
隐藏父类sum_3中的实例变量
隐藏父类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();
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<
max2){
s=max1;
max1=max2;
max2=s;
max3){
max1=max3;
max3=s;
if(max2<
max3){
s=max2;
max2=max3;
classsub_Sort3extendsSort3{
voidsubsort(doublei,doublej,doublek){
max1=i;
max2=j;
max3=k;
sort();
调用父类中的方法sort()
publicclassClass1{
publicstaticvoidmain(Stringargs[]){
sub_Sort3m1=newsub_Sort3();
m1.subsort();
三个数从大到小为:
+m1.max1+"
"
+m1.max2+"
+m1.max3);
300.0,200.0,100.0
3.运行下面的程序,理解方法的重载。
classSort2or3{
Sort2or3(){
voidsort(doublei,doublej){
if(max1<
voidsort(doublei,doublej,doublek){
Sort2or3m1=newSort2or3();
m1.sort();
两个数从大到小为:
+m1.max2);
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;
t1-1;
i++){
k=i;
for(j=i+1;
t1;
if(t2[j]<
t2[k])k=j;
if(k!
=i){
swap=t2[i];
t2[i]=t2[k];
t2[k]=swap;
classsub_sort_Demoextendssort_Demo{
voidsort(intt1,intt2[]){子类中的方法实现降序
用选择法实现降序排列
i++){
if(t2[j]>
inta[]={119,56};
sort_Demom1=newsort_Demo();
sub_sort_Demom2=newsub_sort_Demo();
排序前的数据为:
for(inti=0;
10;
System.out.print("
"
+a[i]);
调用父类中的sotr()方法
m1.sort(a.length,a);
\n按升序排列的数据为:
调用子类中的sort()方法,该方法实现了对父类中方法的覆盖
m2.sort(a.length,a);
\n按降序排列的数据为:
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);
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("
jb.setFont(newFont(jb.getText(),Font.BOLD,30));
jb.setFont(newFont(jb.getText(),Font.ITALIC,30));
newTypeSet();
3.编程创建一个Fra
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 程序设计 实验 报告