《Java语言程序设计实验指导书》实验指导书.doc_第1页
《Java语言程序设计实验指导书》实验指导书.doc_第2页
《Java语言程序设计实验指导书》实验指导书.doc_第3页
《Java语言程序设计实验指导书》实验指导书.doc_第4页
《Java语言程序设计实验指导书》实验指导书.doc_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Java语言程序设计实验指导书实验指导书 Java语言程序设计实验指导书实验指导书高川翔xx年2月 一、实验的地位、作用Java语言程序设计实验作为课程实践性环节之一,是教学过程中必不可少的重要内容。 通过计算机实验和案例分析,使学生加深理解、验证巩固课堂教学内容;增强高级语言程序设计的感性认识;掌握程序设计的基本方法;培养学生理论与实践相结合的能力。 二、实验开设对象本实验开设对象为Java语言程序设计课程的学习者(信息与计算科学专业本科生),实验为必修内容。 三、基本原理及课程简介Java语言程序设计是必修基础课程。 本课程以BlueJ为工具,主要介绍面向对象的程序设计方法,Java面向对象程序设计语言和面向对象程序设计工具。 使学生掌握面向对象的思想方法,是后续专业课程的基础。 四、指导教师原则上由Java语言程序设计讲授教师负责,由年轻教师担任主要的实验指导教师,实验室人员配合指导。 指导教师应在每次实验前讲清实验目的、基本原理、实验要求等,指导学生在规定的时间内完成相关课程实验。 五、实验设备配置每人配置1台电脑,安装有JDK,以及Blue J、Eclipse或者JBuilder。 六、考核与报告1实验后,学生将实验结果等内容写出实验报告,符合实验教学的要求,并得到指导教师的认可。 2指导教师对每份实验报告进行审阅、评分。 3该实验程依附于理论课,实验课的成绩记入课程平时成绩,占总成绩的25%实验一Java运行环境的安装、配置与运行 一、实验课时3课时。 二、实验目的1掌握下载并安装JDK软件包的方法。 2掌握在BlueJ环境下编写、编译与运行Java程序的方法。 3了解Java语言的概貌。 4了解设置环境变量,命令行编译java程序的方法。 三、实验内容和要求内容1安装JDK软件包和BlueJ开发环境并进行配置。 (1)配置JDK运行环境a)配置windows的path环境变量。 将安装的J2SDK(注意必须安装J2SDK)的bin文件夹的完整路径添加到path系统变量中,如图34所示。 图11path系统变量的配置b)配置CLASSPATH系统变量。 如果系统变量中不存在classpath,则“新建”之。 将J2SDK的lib文件夹的完整路径写入。 如图35。 图12CLASSPATH系统变量的配置 (2)进入DOS虚拟环境; (3)将实验1的程序保存在dexample文件夹下; (4)使用javac命令编译程序;(如图36) (5)使用java运行程序。 注意包中程序的编译与运行方法。 图13利用JDK环境编译运行Java应用程序(以下实验前请仔细阅读Bl ueJ教程的电子文档)2在BlueJ环境下新建一个工程,在工程中编写一个简单的Java程序,在屏幕上输出”hello,java!”。 public classHellopublic staticvoid main(String args)System.out.println(hello,java!);3编译运行Java程序。 4设置环境变量,在命令行下编译运行Java程序。 5浏览运行JDK自带的Applet应用小程序。 6在程序中设置断点、单步执行、查看变量值。 要求 1、独立完成;并以实际上机操作计成绩; 2、所有上机实验必须在下一次实验之前完成,否则此次实验成绩算0分; 3、编写实验报告(按照报告模板编写,必须写出详细的实验步骤及必要的屏幕截图)。 实验二创建一个Applet 一、实验课时3课时。 二、实验目的了解Applet与Application的区别,学会设计Applet程序。 三、实验内容和要求已知JButton类有一个构造函数原形为public JButton(String text,Icon icon)。 其中参数text为显示在按钮上的文本、参数icon为显示在按钮上的图标。 下面的例子就是利用此构造函数产生一个带有文本、图标的按钮,并且当按一下按钮,图标就切换一次。 此图标切换是在两个图标中循环进行的。 程序如下import javax.swing.*;import java.awt.*;import java.awt.event.*;public classButtonExample extendsJAppletint imageNum=1;public voidinit()Container con=getContentPane();final JButtonjb_ok=new JButton(按我,new ImageIcon(sun1.gif);con.setLayout(new FlowLayout();con.add(jb_ok);jb_ok.addActionListener(new ActionListener()public voidactionPerformed(ActionEvent e)if(imageNum=1)jb_ok.setIcon(new ImageIcon(sun2.gif);imageNum=2;elsejb_ok.setIcon(new ImageIcon(sun1.gif);imageNum=1;);此程序中还用到了JButton类的setIcon()方法,用以设置按钮的新的图标。 Html文件代码(文件名为Appcounter.htm)将该文件与ButtonExample.class保存在同一个目录中,使用appletviewer appconmter.htm命令就可以运行这个applet。 要求 1、独立完成;并以实际上机操作计成绩; 2、所有上机实验必须在下一次实验之前完成,否则此次实验成绩算0分; 3、编写实验报告(按照报告模板编写,必须写出详细的实验步骤及必要的屏幕截图)。 实验三数据类型及表达式 一、实验课时3课时。 二、实验目的1掌握Java语言的基本数据类型,了解数据类型包装类的概念。 2掌握变量和表达式的用法。 3理解类型转换的概念。 三、实验内容和要求1输入并运行下面的程序,体会各种基本数据类型的变量的声明、初始化及使用。 public classBasicTypespublic staticvoid main(String args)byte b=0x88;short s=0200;int i=111111;long l=0x111111111;char c=A;float f=.33f;double d=.00001001;boolean bl=true;System.out.println(byte b=+b);System.out.println(short s=+s);System.out.println(int i=+i);System.out.println(long1=+1);System.out.println(char c=+c);System.out.println(float f=+f);System.out.println(double d=+d);System.out.println(boolean bl=+bl);思考 (1)上述程序中定义了哪些变量?每个变量的变量名、数据类型和作用域分别是什么? (2)查看程序的运行结果,分析为什么有些变量最后输出的结果和初始化时的不同?2输入并运行下面的程序并分析结果,体会各种表达式的使用方法。 (1)public classArithmaticOppublic staticvoid main(String args)int a=5,b=3,c;double d=2.5;c=a/b+a%b;System.out.println(c=+c);d=c*b+a/b*d;System.out.println(d=+d); (2)public classArithmaticOp2public staticvoid main(String args)int a,b,c;a=b=c=5;a=+b+c;System.out.println(a=+a+b=+b+c=+c);a=b+c+;System.out.println(a=+a+b=+b+c=+c);a=b+c;System.out.println(a=+a+b=+b+c=+c; (3)public classLogicOppublic staticvoid main(String args)boolean x,y;x=533*46&!(58+4|5+6float int i1=c+i;/char+intint longl1=1+i1;/long+intlong doubled1=f1/i1d;/float/intfloat,floatdoubledouble System.out.println(f1=+f1);System.out.println(il=+il);System.out.println(l1=+l1);System.out.println(d1=+d1);思考 (1)上面的程序用到了哪些自动类型转换?分别是如何实现的? (2)何时需要用到强制类型转换?强制类型转换可能会造成什么不良后果?提高1在Java中,数据类型包装类(type wrapperclass)用于封装基本数据类型的有关信息和操作。 虽然我们经常直接使用Java的基本数据类型,但由于它本身不具备任何操作,无法扩充自身功能,因此,为确保Java语言的纯面向对象特性,Java的语言基础包为数据类型提供了一些对象封装。 数据类型包装类是由多个类组成的一个集合,每种数据类型均存在相应的对象封装类。 下表列出了Java的数据类型包装及其对应的基本数据类型。 基本数据类型数据类型包装类byte Byteshort Shortint Integerlong Longfloat Floatdouble Doublechar Characterboolean Boolean每一个类都提供了一些属性和方法,用户可以根据需要来灵活使用。 注意数据类型包装类与相应的基本数据类型名字几乎相同,请不要混淆。 前者的显著特点是第一个字母应为大写。 2输入并运行下面的程序,了解并掌握数据类型包装类的属性和用法。 public classMaxVariablespublic staticvoid main(String args)/integers bytelargestByte=Byte.MAX_VALUE;/MAX_VALUE是Byte类的属性(表示Byte类所能达到的最大值)short largestShort=Short.MAX_VALUE;int largestInteger=Integer.MAX_VALUE;long largestLong=Long.MAX_VALUE;/real numbersfloat largestFloat=Float.MAX_VALUE;double largestDouble=Double.MAX_VALUE;/other primitivetypes charaChar=S;boolean aBoolean=true;/display them all System.out.println(The largestbyte valueis+largestByte);System.out.println(The largestshort valueis+largestShort);System.out.println(The largestinteger valueis+largestInteger);System.out.println(The largestlong valueis+largestLong);System.out.println(The largestfloat valueis+largestFloat);System.out.println(The largestdouble valueis+largestDouble);/Character类有一个方法boolean isUpperCase(char ch)是用来判断一个字符是/否是大写if(Character.isUpperCase(aChar)System.out.println(The character+aChar+is uppercase.);elseSystem.out.println(The character+aChar+is lowercase.);System.out.println(The valueof aBooleanis+aBoolean); (1)修改上面的程序,让它能输出每种整型数据类型能表示的最小值。 (提示Byte类型的最小值属性是MIN_VALUE) (2)Character类有另一个方法boolean isLowerCase(char ch),可以来判断一个字符是否为小写。 修改适当的语句,使程序完成相同的功能。 (3)修改上面的程序,使布尔型变量aBoolean具有一个不同的值。 要求 1、独立完成;并以实际上机操作计成绩; 2、所有上机实验必须在下一次实验之前完成,否则此次实验成绩算0分; 3、编写实验报告(按照报告模板编写,必须写出详细的实验步骤及必要的屏幕截图)。 实验四控制流程 一、实验课时3课时。 二、实验目的1充分掌握流程控制语句的格式和功能。 2熟练运用流程控制语句进行程序设计。 3学会进行简单的程序调试。 三、实验内容和要求1输入并运行下面两个程序 (1)public classWhileDemo2public staticvoid main(Stringargs)int i=100;while(i100System.out.println(Print+i);i+; (2)public classDoWhileDemo2public staticvoid main(Stringargs)int i=100;doSystem.out.println(Print+i);i+while(i100);思考运行上面两个程序,比较While和DoWhile语句的执行过程有何不同。 2输入并运行下面的程序public classlxsumpublic staticvoid main(Stringargs)int i=1,sum;sum=0;while(i=100)sum+=i;i+System.out.println(sum=+sum);思考 (1)循环一般适用于什么情况? (2)请用for循环和do-while循环为实现上面的程序的功能。 3输入并运行下面的程序,体会switch语句的使用。 public classlxswitchpublic staticvoid main(Stringargs)int x=1,y=2,i=0,j=0;switch(x)case1:switch(y)case1:i+;break;case2:j+;break;default:i+;j+;case2:i+;j+;break;default:i+;j+;System.out.println(i=+i);Sysem.out.printin(j=+j);思考 (1)将你分析程序得到的结果与实际的运行结果相比较,看看有没有什么不同。 如果有不同,原因在哪里? (2)break语句在switch语句中起到了什么作用?4输入并运行下面的程序,判断某一年是否是闰年。 闰年的条件是符合下面二者之一 (1)能被4整除,但不能被100整除; (2)能被4整除,又能被400整除。 public classJudgeLeapYearpublic staicvoid main(String args)/方法1int year=1800;if(year%4=0&year%100!=0)|(year%400=0)System.out.println(year+年是闰年);else System.out.println(year+年不是闰年);/方法2year=1997;boolean leap;if(year%4!=0)leap=false;else if(year%100!=0)leap=true;else if(year%400!=0)leap=false;else leap=true;if(leap=true)System.out.println(year+年是闰年);else System.out.println(year+年不是闰年)/方法3year=2000;if(year%4=0)if(year%100=0)if(year%400=0)leap=true;else leap=false;else leap=false;else leap=false;if(leap=true)System.out.println(year+年是闰年);else System.out.prinln(year+年不是闰年);思考 (1)程序中是如何判断一个数能被另一个数整除的? (2)请说出程序中用了哪三种方法来判断是否闰年,并体会其中的联系和区别。 提高在输入程序的过程中难免要出错。 一般说业,程序中的错误有两种语法错误和逻辑错误。 程序调试就是要找出程序中的错误,编出正确的程序。 下面的程序用来输出5次Hello!,请更正程序中的错误,并上机调试运行。 public classHellopublic staticvoid main(Stringargs)for(i=1;i5;i+);System.out.println(time+i+:Hello!);在MS-DOS下编译该程序,输入javac Hello.java,屏幕上会出现如下错误信息Hello.java:5:Undefined variable:i for(i=1;i5;i+);?Hello.java:5:Undefined variable:i for(i=1;i5;i+);Hello.java:5:Undefined varable:i for(i=1;i5;i+)?Hello.java:7:Undefined variable:i System.out.println(time+i+:Hello);4errors可以看到,Java中的错误信息包含如下内容 (1)源程序文件名; (2)出错那一行的行号; (3)出错的类型; (4)出错那一行的内容。 根据系统给出的错误信息,可以进行相应的修改。 如上面的几个错误,类型都是Undefined variable:i,也就是说,变量i尚未定义。 于是就可以分析出出错的原因是程序中没有声明变量i就直接使用了它,就是一个语法错误,在源程序中进行相应的修改。 修改过的程序内容如下:public classHellopublic staticvoid main(Stringargs)int i;/新添的变量说明for(i=1;i5;i+)System.out.println(time+i+:Hello!)对上面的程序再进行编译,顺利通过(屏幕没有出现任何信息)后生成相应的.class文件。 运行该文件,结果为time5:Hello!只输出了一次Hello!与题目的要求(输出5次Hello!)不符,这是一个逻辑错误。 分析结果,发现它只执行了i为5的那一次输出。 再次检查程序,发现在for语句的圆括号后面多了一个分号,造成了for语句的循环体实际为空语句。 从源程序中将;去掉,重新存盘、编译、运行。 结果如下time1:Hello!time2:Hello!time3:Hello!time4:Hello!发现还少输出一次Hello!,将循环变量的结束条件为i6,重新存盘、编译,运行正确。 思考 (1)变量i在程序中起到什么作用? (2)如果将i的初值改设为0,那么应如何改写终止循环的条件? (3)如果将i的初值改设为3,那么应如何改写终止循环的条件?要求 1、独立完成;并以实际上机操作计成绩; 2、所有上机实验必须在下一次实验之前完成,否则此次实验成绩算0分; 3、编写实验报告(按照报告模板编写,必须写出详细的实验步骤及必要的屏幕截图)。 实验五数组 一、实验课时3课时。 二、实验目的1掌握Java中数组的声明、创建、初始化和使用。 2了解Java中提供的对数组排序的常用方法。 3了解在数组中查找一个特定的值的常用方法。 三、实验内容和要求1数组元素的排序是一个经常会遇到的问题,冒泡(起泡)排序法(bubble sort)是一种常用的排序方法。 它的基本思想是对一个具有n个元素的数组,首先将第一个元素的值和第二个元素的值进行比较,若为逆序(即第一个元素的值大于第二个元素的值),则将两个元素交换之,然后比较第二个元素和第三个元素的值,依次类推,直到第n1个元素和第n个元素进行比较、交换为止。 如此经过一趟排序,使得值最大元素被安置到最后一个元素的位置上。 然后,对前n1个元素进行同样的操作,则具有次大值的元素被安置在第n1个元素的位置上。 重复以上过程直到没有元素需要交换为止。 此过程可图示如下初始数组元素49386597761327第1趟排序之后38496576132797第2趟排序之后38496513277697第3趟排序之后38491327657697第4趟排序之后38132749657697第5趟排序之后13273849657697第6趟排序之后13273849657697在此过程中,值小的数组元素好比水中气泡逐趟向上飘浮,而值大的数组元素好比石块沉入水底。 下面的代码是冒泡排序法的程序实现,请输入并运行之:public classBubbleSortpublic staticvoid main(String args)int i,j;int intArray=30,1,-9,70,25;int1=intArray.length;for(i=1;i1;i+)for(j=0;jintArrayj+1)int t=intArrayi;intArrayj=intArrayj+1;intArrayj+1=t;for(i=0;i=low)System.out.println(Low+low+Mid+mid+High+high);if(value=arraymid)found=true;else if(value (1)程序中整型变量high、low、mid、t分别起什么作用?布尔型变量found又起到什么作用? (2)该程序是如何确定查找区间范围的? (3)该程序先定义了一个bsearch方法,然后在main()中多次调用该方法,请说出这样做有什么优点。 4编程实现在无序数组中顺序查找一个特定的值,找到则返回该值在数组中的位置(下标),找不到则返回-1。 (想想,为什么用负值用为返回标志?)提示数组中的元素是无序的,因此搜索范围一定要是整个数组。 5输入并运行下面的程序,体会二维数组的用法。 class MaxMatrixpublic staticvoid main(String args)int row=0;int col=0;/放行号和列号int max;int m=6,2,3,24,-5,8,7,6,-3,18,-4,1;max=m00;for(int i=0;imax)max=mij;row=i;col=j;System.out.println(最大的元素的值为+max);System.out.println(该元素的位置在+row+行,+col+列);6修改上面的程序,改为求矩阵中最小的那个元素的值,以及其所在的行号和列号。 提高1在Java中对数组进行排序,可以使用如下步骤 (1)使用import java.util.*语句,可以让java.util包中的所有的类在程序中都可以使用; (2)创建一个数组; (3)使用Arrays类的sort()方法来重新调整一个数组的数据。 用Arrays类的sort()方法排过序的数组元素将被调整为按升序排列。 import java.util.*;/让java.util包中的所有的类在程序中都可以使用class SortNamepublic staticvoid main(String args)String names=Akbar,Umberto,Peter,Zemo,Digo;System.out.println(数组元素原来的顺序是);for(int i=0;i 3.建立一个浮点型数组并按升序进行排序。 要求 1、独立完成;并以实际上机操作计成绩; 2、所有上机实验必须在下一次实验之前完成,否则此次实验成绩算0分; 3、编写实验报告(按照报告模板编写,必须写出详细的实验步骤及必要的屏幕截图)。 实验六类 一、实验课时3课时。 二、实验目的1掌握如何定义类。 2掌握如何定义类的成员变量、成员方法。 3掌握如何创建对象。 4掌握关键字static的用法。 5掌握类成员的访问权限。 三、实验内容和要求1下面是一个教师类Teacher,用于学校某个系部的管理。 系部在管理教师时,所关心的信息主要有教师编号、姓名、性别、年龄、家庭住址、电话号码等,于是抽取这些属性来描述教师这个实体。 考虑到教师年龄、家庭住址、电话号码等不宜对无关人员公开,于是将这些数据设为私有的成员变量(即实行保护)。 要获得这些数据,必须使用类所提供的一组方法,并给出口令。 检查口令是否正确是由私有方法checkPasswork完成的。 阅读并编译这一程序,体会类的成员变量、类的方法以及访问权限的设计。 class Teacher/定义教师类/声明成员变量String tCode;/教师编号String tName;/教师姓名String tSex;/教师性别private StringtAge;/教师年龄private StringtAddr;/家庭住址private StringtTelenmb;/电话号码private StringtPassword;访问口令/声明构造方法Teacher(String password)tPassword=password;/声明成员方法private intcheckPassword(String password)/私有方法检查口令是否正确if(tPassword=password)return1;else return0;void setAge(String passwork,String age)/置年龄if(checkPassword(passwork)=1)tAge=age;String getAge(String password)/取年龄if(checkPassword(password)=1)return tAge;else returnWrong password!;void setAddr(String password,String addr)/置家庭地址if(checkPassword(password)=1)tAddr=addr;String getAddr(String passwork)取家庭地址if(checkPassword(password)=1)return tAddr;else returnWrong password!;void setTelenmb(String passwork,String telenmb)/置电话号码if(checkPassword(password)=1)tTelenmb=telenmb;String getTelenmb(String password)/取电话号码if(checkPassword(password)=1)return tTelenmb;else returnWrong password!;2下面的程序定义了一个学生类。 上机编译并运行此程序,观察运行结果,体会类的定义方法、类的成员变量的定义方法、对象的声明及其使用的方法。 class Student/Student是类名/声明成员变量int sNumber;/学号String sName;/姓名String sClass;/班号public classCheck0/主类Check0public staticvoid main(String args)/主方法mainStudent x=new Student();/创建Student类的对象x/访问成员变量xsName=myname;xsNumber=900001;System.out.println(xsName);System.out.println(xsNumber);3上面的Student类抽取了学号、姓名和班号来描述学生这个实体,但未对其实行保护。 请仿照教师类的定义对其进行修改,使得你认为重要的不宜公开的数据得到一定的保护。 4若要使Student类可用于一个全校同学的通信录程序,请为此设计一具更完善的Student类,设计时应考虑抽取哪些属性来描述学生这个实体,哪些数据需要保护,应提供哪些方法,等等。 提高1在学习计算机语言时,对于语法中的难点或疑点,可以通过编写一些测试程序加以澄清或验证,从而加深对语言的理解。 请将上面程序中Student类的成员变量sClass修饰为static,在下面的程序中填入适当的语句(创建几个Student类的对象,对其中的一个对象的sClass赋值,输出其他对象的sClass),验证成员变量sClass为学生类的不同对象所共享,加深对static变量的理解。 public classCheck1public staticvoid main(String args)/在下行填入适当的语句,验证成员变量sClass为学生类的不同对象所共享2关键字static也可用来修饰方法和类。 调用static方法(称为静态方法)时,不必先创建该类的对象再用对象名.方法名调用,而可直接用类名.方法名来调用。 请设计一个测试程序。 Static类也有类似的情形吗?再设计一个测试程序。 要求 1、独立完成;并以实际上机操作计成绩; 2、所有上机实验必须在下一次实验之前完成,否则此次实验成绩算0分; 3、编写实验报告(按照报告模板编写,必须写出详细的实验步骤及必要的屏幕截图)。 实验七继承和多态 一、实验课时3课时。 二、实验目的1掌握如何创建子类。 2掌握关键字this和super的用法。 3体会方法重写和重载的区别。 4体会抽象和抽象方法的用法。 三、实验内容和要求1下面程序中定义了汽车类Car和垃圾车类TrashCar。 其中垃圾车类由汽车类继承而来。 注意汽车类中声明了抽象方法powerType(动力类型),在垃圾车类中重写了这一方法。 上机编译、运行此程序,体会此程序中创建子类的方法和抽象类、抽象方法的用法。 请在此程序基础上利用继承声明一个客车类Bus,该类比汽车多一个属性座位数(int seat_num)。 动力类型为柴油发动机;在主类的主方法中增加一些语句来创建客车类的对象并对这些对象进行一些操作。 调试并运行你的程序。 abstract classCar/定义抽象类Car private int carNumber;abstract void power();/声明抽象方法void setNumber(int carNum)/置车号carNumber=carNum;void showNumber()/显示车号System.out.println(我的车号是+carNumber);class TrashCarextends Car/定义TrashCar类,它继承Car类private intcapacity;voidpower()/重写父类Car的抽象方法System.out.println(汽油发动机驱动);void setCapacity(int trashCarCapacity)capacity=trashCarCapacity;void showCapacity()System.out.println(我的容量是+capacity+);class CarDemo/主类public staticvoid main(String args)/主方法TrashCar DemoTrashCar=new TrashCar();DemoTrashCar.setNumber (4949);DemoTrashCar.setCapacityr (20);DemoTrashCar.showNumber();DemoTrashCar.showCapacity();2编译并运行下面的程序,观察分析运行结果,体会程序中super和this的用法,进一步理解变量隐藏和方法重写的概念。 class SuperClss/定义父类int x;SuperClss()/父类的构造方法x=10;void doClss()System.out.println(SuperClss.do Class();class SubClssextends SuperClss/定义子类int x;SubClss()/子类的构造方法super();/调用父类的构造方法x=100;void doClss()/重写父类的doClss方法System.out.println(subClss.doClss();void doDemo()/演示super和this的用法int x;x=1000;super.doClss();/调用父类的doClss方法doClss();/调用本类的doClss方法System.out.println(super.x=+super.x);/父类的x System.out.println(this.x=+this.x);/本类的x System.out.println(x=+x);/本方法的xpublic classSuperDemopublic staticvoid main(String args)/主方法SubClss s=new SubClss();s.doDemo();3编译并运行下面的程序,分析运行结果,体会其中方法重载的用法,进一步理解方法重载的概念。 class Father/本类中的speak方法重载了两次void speak()无参的speak方法System.out.println(I amFather!);void speak(String s)/有参的speak方法System.out.println(I like+s+.);public classOverLoadingDemopublic staticvoid main(String args)Father x=new Father();x.speak();/调用无参的speak方法x.speak(music)/调用有参的speak方法提高现实世界中有很多可以用继承描述的关系,如dog有name、color、weight等属性以及bark、run等行为,而pekinese(哈巴狗)可以描述为dog的子类。 结合你知识背景,举一个继承的例子,其中涉及抽象方法、方法重写、方法重载等概念。 画出类继承的层次图,并用Java语言描述之,再编译运行你的程序。 要求 1、独立完成;并以实际上机操作计成绩; 2、所有上机实验必须在下一次实验之前完成,否则此次实验成绩算0分; 3、编写实验报告(按照报告模板编写,必须写出详细的实验步骤及必要的屏幕截图)。 实验八方法和构造 一、实验课时3课时。 二、实验目的1掌握方法参数传递的过程。 2掌握方法返回值的用法。 3掌握构造方法的设计。 4掌握对象初始化的过程。 5掌握对象作为参数的用法。 三、实验内容和要求1下面给出了一个计算阶乘的类Fact和使用该类计算阶乘的程序Check1。 编译并运行该程序,观察运行结果,体会方法的参数的传递和返回值的用法。 在调用时改变参数的个数和类型,看看编译时会得到什么信息。 class Factfloat fact(int n)/定义计算n!的方法inti;float x=1;for(i=1;i (10);/计算10!System.out.println(x.fact (15);/计算15!2下面给出了一个矩形类Rectangle,其中含有多个构造方法。 上机编译并运行此程序,观察运行结果,体会其中不同构造方法的设计和使用。 class Rectangleprivate int width;privateint length;/下面是类Rectangle的三个构造方法Rcectangle()/此构造方法无参数,缺省地给出长 (30)和宽 (20)length=30;width=20;R

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论