Java实验题目
一、
(1).编写Java应用程序,定义byte、short、int、long、float、double、char和boolean等类型的数据并用一个输出语句输出,要求每行输出一个数据。
(2).编写Java小应用程序,输出两行字符串:“Java很有趣。”和“努力学习Java编程。”,输出的起点坐标是(20,20),行距是50像素。
(3).使用算术运算符得到一个4位十进制数的各位数字并输出,然后输出该数的逆序数和各位数字平方后相加的和。
(4).编写Java小应用程序,用三目条件运算符求程序中给定的4个double数的最大值和最小值并输出结果。
实验报告题:使用算术运算符得到一个4位十进制数的各位数字并输出,然后输出该数的逆序数和各位数字平方后相加的和。
二、
1、数据类型与表达式的使用
自己编写程序测试各种运算符的使用。例如,以下程序是测试Java的数据类型:
1
public class UseVarible {
public static void main(String args [])
{
boolean b = true;
short si = 128;
int i = -99;
long l = 1234567L;
char ch = 'J';
float f = 3.1415925F;
double d = -1.04E-5;
String s = \"你好!\";
System.out.println(\"布尔型变量 b=\"+ b);
System.out.println(\"短整型变量 si=\"+ si);
2
System.out.println(\"整型变量 i=\"+ i);
System.out.println(\"长整型变量 l=\"+ l);
System.out.println(\"字符型变量 ch=\"+ ch);
System.out.println(\"浮点型变量 f=\"+ f);
System.out.println(\"双精度型变量d=\"+ d);
System.out.println(\"字符型对象 s=\"+ s);
}
}
2、 数组的创建与使用
编写并运行P.23例1-5,例1-6。
3、 思考与上机练习
(1). 编写Java应用程序,其中定义一个int数组(数组元素任意指定),将数组元素由小到大排序、求数组元素的和、数组元素的最大值和最小值并输出所求的结果。
(2). 计算两个矩阵的和、差、乘积并输出。
3
4、实验报告内容
编写Java应用程序,其中定义一个int数组(数组元素任意指定),将数组元素由小到大排序、求数组元素的最大值并输出所求的结果。
三、
(1) 定义一个圆类Circle,该圆类的数据成员包括:圆心点位置及圆的半径;
方法成员有:设置圆心位置和半径的方法,获取圆心位置和半径的方法,无参的构造方法初始化圆心位置为(0,0),半径为1。另外定义一个构造方法可以接收圆心位置与半径的参数。编写测试类创建Circle类的对象,并且分别调用各种方法,对比这些方法的执行结果。
(2) 定义一个矩形类MyRectangle,类中有4个私有的整型变量,分别是矩形的左上角坐标(xUp,yUp)和右下角坐标(xDown,yDown);类中定义没有参数的构造方法和有4个int参数的构造方法,用来初始化类对象。类中还有以下方法: getW( )——计算矩形的宽度;getH( )——计算矩形的高度;area( )——计算矩形的面积;toString( )——把矩形的宽、高和面积等信息作为为字符串返回。编写应用程序创建MyRectangle类的对象并输出矩形对象的信息。
(3) 设计一个长方体类MyCube,该类包含第2题中的MyRectangle类对象作为类的成员变量,表示长方体的底面;此外还包含一个整型变量d,表示长方体的高。类中定义构造方法初始化类对象、定义求体积和表面积的方法。编写应用程序测试MyCube类。
4
(4) 对于第2、3题的类分别用类的访问修饰符public与无修饰符定义,同时把它们声明在同一个包中、不同的包中,分析程序的编译情况,理解类及其成员的访问控制符的作用。
(5) 设计一个表示用户的User类,类中的变量有用户名、口令(私有的)和记录用户个数的变量(静态的),定义类的3个构造方法(没有参数、有一个参数给用户名赋值、有两个参数给用户名和口令赋值)、获取和设置口令的方法、返回字符串表示的类信息(包括用户名、口令)的方法。编写应用程序测试User类。
(6) 应用程序中定义方法头如下所示的方法:
static int[] add(int[] x, int[] y)
static int[] multi(int[] x, int[] y)
add方法的功能是:把参数数组x和y(其元素个数相同)的每个元素相加,并作为返回数组的元素;multi方法的功能是:把参数数组x和y(其元素个数相同)的每个元素相乘,并作为返回数组的元素。在Java应用程序中使用这两个方法。
实验报告内容:
设计一个表示用户的User类,类中的变量有用户名、口令(私有的)和记录用户个数的变量(静态的),定义类的3个构造方法(没有参数、有一个参数给用户名赋值、有两个参数给用户名和口令赋值)、获取和设置口令的方法、返回字符串表示的类信息(包括用户名、口令)的方法。编写应用程序测试User类。
5
四、
2.1 方法的流程控制
(1) 编写Java应用程序,求1!+2!+...+20!的和并显示,要求用方法实现求阶乘。
(2) 编写Java应用程序,从键盘输入一个整数,将其转换为的二进制、十六进制并把相应的表示输出到屏幕上。
(3) 编写Java应用程序,分别利用while循环、do…while循环和for循环求100~200的自然数的和。
(4) 重载3个不同版本的max方法和min方法,这些方法均有4个参数,分别用来求4个int、4个long、4个float数的最大值和最小值。编写Java应用程序,使用这些方法。
(5) 编写应用程序,在main方法在中定义字符串“1.235678e2”、“87.8f”和“128”,将他们分别转化为对应的double数、float数和int数并输出,最后输出这三个数的和(要求结果保留到小数点后两位)。
(6) 编写Java应用程序,程序运行后,根据屏幕提示输入一个数字字符串,回车后统计有多少个偶数数字和奇数数字。
(7) 编写Java应用程序,从命令行传入多个字符串到程序中,并将他们分行输出在屏幕上。
6
(8) 编写Java应用程序,求50的阶乘(要求输出结果的每一位)。
(9) 编写Java应用程序,把100~1000的自然数中能够被3整除的数输出到屏幕上。
(10) 编写Java小应用程序,程序中自定义一个方法:double find2(int n),方法的功能是求2的n次方。程序中调用该方法,输出2的40次方的结果并输出。
(11) 一个三位数abc,满足数字算式:abc*abc=***abc,其中*代表数字,使用一层循环,求满足条件的三位数。
(12) 编写应用程序,定义一个5行3列的二维数组,给数组的每个元素赋10~100之间的随机值,显示二维数组每行的元素,并输出所有元素的和。
2.2 异常处理
(1) 编写应用程序,使之运行后产生ArrayIndexOutOfBoundsException异常。
(2) 编写应用程序,使之运行后产生NullPointerException异常。
(3) 自定义异常类MyException,该类继承自Exception类,类中只有含一个字符串参数msg的构造方法,构造方法中只有一条语句super(msg)——调用父类的构造方法。另外,编写自定义类MyAdd,类中只有一个私有的整型变量x;有两个公有方法void add(int x)和int getX( ),其中add(int x)的功能是把参数x的值加到类中的变量x中(但要求x的值在0~100之间,否则抛出自定义异常MyException类的对象),getX( )方法返回x的值。编写应用程序TestMyException.java,在其main方法中创建MyAdd类对象,并调用MyAdd类的set方法共3次,分别设置x的值为88、66、128,每次都输出
7
类中变量x的值,编译、运行程序TestMyException.java,观察程序的输出结果。
3.思考题
(1) 什么是异常?解释抛出、捕获的含义。
(2) 简述Java的异常处理机制。
(3) 用户程序如何自定义异常?
(4) 系统定义的异常与用户自定义的异常有何不同?如何使用这两类异常?
实验报告内容:编写Java应用程序,从键盘输入一个整数,将其转换为的二进制、十六进制并把相应的表示输出到屏幕上。
五、
2.1 类的继承
1.定义一个抽象基类Shape,它包含一个属性Color、一个非抽象方法getColor( ),一个抽象方法getArea( ),从Shape类派生出Rectangle和Circle类,这两个类都用getArea( )方法计算对象的面积。编写应用程序使用Rectangle类和Circle类。
2.设计并实现一个MyGraphic类及其子类MyRectangle:
(1) MyGraphic类包括两个属性:线条的颜色linColor与填充颜色fillColor,方法包
8
括:构造方法初始化属性值、print方法输出属性值。
(2) 矩形类MyRectangle有长、宽两个属性与构造方法、计算周长、面积的方法,其中在构造方法中调用父类MyGraphic的构造方法初始化父类继承来的两个属性,并初始化本类定义的属性。
(3) 定义测试类创建MyGraphic和MyRectangle的对象,调用相应方法输出颜色,对于矩形对象还要求周长、面积最后输出。
3.定义一个类Person,并由该类做基类派生出一个子类Employee。 其中:
(1) Person类具有name、age两个保护成员变量,分别为String类型、整型。
该类的构造方法用于对成员变量进行初始化,要求定义一个无参构造方法与一个有两个参数的构造方法,在无参构造方法中调用有参构造方法。
(2) Employee类具有保护成员变量empno,类型为整型。 该类也定义一个无参
构造方法与一个有参构造方法对成员变量进行初始化,在这两个构造方法中分别调用父类的无参与有参构造方法。
(3) 编写测试类对Person类与Employee类进行测试。
4.定义一个学生类Student及其子类班长类StudentBZ:
(1) Student类中的属性包括:学号、姓名、3门课的成绩、总分、平均分;方法包括:
9
1) 一个无参构造方法与一个带4个参数的构造方法;
2) 成员变量相应的get/set方法用于获取与设置成员变量值;
3) 实例方法input( )用于输入学号、姓名、3门课的成绩;total( )用于统计每个学生的总分;average( )方法用于计算平均分(3门课总和/3);toString( )方法返回学生的信息。
4) 类方法void Max(Student stu[],int n)求出成绩最高者,并输出该生的学号、姓名、3门课的成绩以及平均分。
(2) 子类StudentBZ的属性包括:responsibilities(职责) ,manageStuds(所管理的学生);重写父类的average( )方法,班长的平均分=3门课总和/3+5;重写toString( )方法输出班长的信息。
(3) 定义测试类,对包含5个学生对象的数组进行测试,调用input方法输入数据后求总分,最后找出最高分者。定义一个班长对象,将5个学生对象作为其管理的学生对象,并输出班长的各项信息。
2.2 类的组合
1.(1) 定义一个类Person,具有name、age两个私有成员变量,分别为String类型、整型。要求定义一个无参构造方法与一个有两个参数的构造方法对成员变量进行初始化;定义各成员变量的get/set方法,重写toString方法。
(2) 由Person类派生出一个子类Employee,包括年薪及受雇日期,定义该类
10
的无参与有参构造方法,在这些构造方法中分别调用父类的构造方法;定义
各成员变量的get/set方法,重写toString方法;
(3) 定义一个MyDate类(日期类)作为受雇日期,其中包括年、月、日属性,定义该类的构造方法以及各成员的get/set方法。
(4) 定义一个测试类,创建具有3个元素的Employee对象数组,调用相应方法将对象的基本情况输出并分析各个构造方法的执行顺序。
实验报告内容:
定义一个抽象基类Shape,它包含一个属性Color、一个非抽象方法getColor( ),
一个抽象方法getArea( ),从Shape类派生出Rectangle和Circle类,这两个类都
用getArea( )方法计算对象的面积。编写应用程序使用Rectangle类和Circle类。
六、
(1) 定义一个接口ClassName,接口中只有一个抽象方法getClassName( )。设计一个类Horse,该类实现接口ClassName中的方法getClassName( ),功能是获取该类的类名。编写应用程序使用Horse类。
(2) 定义接口MyInterface,接口中只有一个名为area的方法,该方法有一个double类型参数,返回类型也为double。编写一个类实现接口MyInterface,接口中area方法
11
的实现是返回参数的立方值;在应用程序中调用该方法并输出其结果。
(3) 定义一个Soundable接口,该接口具有播放声音、关闭声音、增大音量、减小音量等功能。Soundable接口的这些功能分别由收音机Radio、随身听Walkman和手机MobilePhone实现。另外设计一个Person类,具有姓名和年龄两个属性以及一个听音乐的方法listen(Soundable)。最后设计一个测试类使用这些实现了Soundable接口的声音设备类。程序运行时,先询问用户想听哪种设备,然后程序会按照该设备的工作方式发出声音、调节音量、关闭声音。分析运行结果,并解释这是什么特性。
(4) 声明A类,其中有一个无参构造方法;声明类B,并定义其无参构造方法;声明A类的子类C,其有一成员是B类的一个对象,定义其构造方法。定义测试类创建C类的对象,观察程序的运行结果,并分析原因。
(5) 声明一个接口,此接口至少具有一个方法;定义一个类,其中有一个方法,该方法中声明内部类实现此接口,并返回此接口的引用。
(6) 声明一个具有内部类的类,此内部类只有一个非默认的构造方法;声明另外一个具有内部类的类,此内部类继承第一个内部类。
思考题
(1) 什么是接口?接口的作用是什么?
(2) 接口与抽象类有什么区别?
(3) 在什么情况下,可以对父类对象的引用进行强制类型转换,使其转化为子类对象
12
的引用?
(4) 什么是多态性?如何实现多态?
实验报告内容:
定义一个Soundable接口,该接口具有播放声音、关闭声音、增大音量、减小音量等功能。Soundable接口的这些功能分别由收音机Radio、随身听Walkman和手机MobilePhone实现。另外设计一个Person类,具有姓名和年龄两个属性以及一个听音乐的方法listen(Soundable)。最后设计一个测试类使用这些实现了Soundable接口的声音设备类。程序运行时,先询问用户想听哪种设备,然后程序会按照该设备的工作方式发出声音、调节音量、关闭声音。分析运行结果,并解释这是什么特性。
13
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- yrrf.cn 版权所有 赣ICP备2024042794号-2
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务