配色: 字号:
实验04 特殊类和异常处理
2023-10-19 | 阅:  转:  |  分享 
  
实验四 抽象类、接口和枚举实验日期: 学号:______________ 姓名:________________一、实验目的1、掌握
抽象类的使用。2、掌握接口的使用。3、掌握枚举的基本使用。二、实验内容调试教材对应章节的例题,确保自己可以做出每一道题。完成如下任
务或编写能够满足如下条件的程序:(1)(实验目的:复习定义类的基本语法)请定义一个交通工具(Vehicle)的类,其中有私有属性:
速度(speed)、体积(size),有方法移动(move())、加速speedUp(int addSpeed)、减速speedD
own(int subSpeed)。要求:1)完成类的封装;2)实现上述各方法;3)在main()中实例化一个交通工具对象,并给它
初始化speed、size的值并且输出;4)对移动、加速、减速方法进行测试,要求显示每次变化后的速度。(2)(实验目的:掌握Jav
a中抽象类的语法)编写一个Java程序,实现如下要求: 1)定义抽象类Shape,包含length、width两个成员变量,包含有
参构造方法完成length、width的赋值,包含抽象方法area()和printArea()用来完成面积的计算和输出;2)定义两
个子类Rectangle、Triangle类,在子类中调用父类的构造方法完成length、width的赋值,并实现父类中抽象方法。
3)定义E4ChouXiang类,分别创建长方形类和三角形类的对象,并完成相应方法的测试。(3)(实验目的:掌握接口的基本语法)编
写一个Java程序,在程序中定义一个接口Shape1,定义一个类Cylinder实现接口Shape1,在Cylinder类中实现S
hape接口中的抽象方法。import java.text.DecimalFormat;interface Shape1{//定义
一个成员变量pi,单精度浮点数类型,初始值为3.14 //声明一个抽象方法area(),返回值为double类型 //声明一个抽象
方法volume(),返回值为double类型 }class Cylinder { // 通过Cylinder类实现接口Sh
ape}public class E6MyInterface {public static void main(String[]
args) {Cylinder a=new Cylinder(2,3); // 了解DecimalFormat类,并定义对象,用来
控制输出的面积和体积保留两位小数}}(4)(实验目的:掌握Java语言中多重继承的实现)编写一个程序,在程序中定义一个接口Achi
evement,定义一个父类Person,定义一个子类Student继承Person类并实现Achievement接口,在子类St
udent中实现接口中的抽象方法并调用父类的方法。interface Achievement{//声明一个返回float型的方法a
verage() }class Person{String name;int age;public Person() {};pub
lic Person(String newName,int newAge) {name=newName;age=newAge;}p
ublic void introduce() {System.out.println("你好,我是"+name+",今年"+age
+"岁");}} //继承Person类并实现Achievement接口class Student {int chinese;i
nt math;int english;//写出Student类的构造方法,给学生类各成员变量赋值//实现接口Achievemen
t中的average()方法}public class E7DuoChongJiCheng {public static void
main(String[] args) {Student s1=new Student("张三",16,80,90,80);
//调用s1的introduce()方法//输出“张三的平均分为” }}改进:将Person中name和age的访问权限,设为
private,如何在main()方法中输出?(5)(实验目的:编写程序,掌握接口的使用。)利用接口做参数,写个计算器,能完成加减
乘除运算。1)定义一个接口Compute含有一个方法int computer(int n, int m)。2)设计四个类实现此接口
,分别完成加减乘除运算。3)设计一个类UseCompute,类中含有方法:public void useCom(Compute c
om, int one, int two),此方法能够用传递过来的对象调用computer方法完成运算,并输出运算的结果。4)设计
一个主类Test,调用UseCompute中的方法useCom来完成加减乘除运算。(6)(实验目的:掌握枚举的使用)定义一个电脑品
牌枚举类,其中只有Lenovo、Dell、Acer、Apple四个电脑品牌。要求该类中:1)含有两个私有属性:name,price
,并有对应的set、get方法;2)含有一个无参构造方法和一个能给两个属性赋值的有参构造方法,并要求两个枚举对象有属性值,两个枚举
对象无属性值;3)重写toString()方法,输出name和price;4)定义测试类,输出所有枚举值(用values())并给
无属性值的枚举对象赋值并输出。(7)(实验目的:熟悉Java语言中的常见运行时异常)编写一个Java程序,在main()方法中,对
可能产生的错误语句捕获相应的异常。public class E2OtherException {public static voi
d main(String[] args) {try { //定义数组a并赋值为空a[0]=1;}catch(NullPoint
erException e) {System.out.println("空指针异常");}try {String str=null
;str.length();}catch( ) {//捕获空指针异常System.out.println("空指针异常");}tr
y {Object obj=new Object();String str=(String)obj;}catch( ) {//捕获
类型强制转换异常System.out.println("类型强制转换异常");}try {int a[]=new int[-1];
}catch( ) {//捕获数组元素个数为负异常System.out.println("数组负下标异常");}try {int
a[]=new int[1];a[0]=1;a[1]=1;}catch( ) {//捕获数组下标越界异常System.out.pr
intln("数组下标越界异常");}}}(8)写一个方法void iftriangle(int a,int b,int c),判
断三个参数是否能构成一个三角形。如果不能,则抛出异常IllegalArgumentException,显示异常信息“a,b,c不能
构成三角形”;如果可以构成,则显示三角形三个边长。在主方法中得到命令行输入的三个整数,调用此方法,并捕获异常。(9)编写程序模拟用
户注册:要求在main方法提示用户输入用户名和密码,并调用UserService类中的register方法进行注册。注册时用户名要
求长度在[6-16]之间,小于或大于都要通过自定义异常IllegalNameException抛出。若输入有误,需持续输入直到完成
注册。(10)(选做)编写程序,使用一维数组,模拟栈数据结构。要求:1)这个栈中存储String类型的数据,默认初始化容量为5。2
)在栈中提供push方法模拟压栈。(若栈满了,抛出自定义异常MyStackExceptionTest)3)在栈中提供pop方法模拟弹栈。(若栈空了,抛出自定义异常MyStackExceptionTest)4)在栈中提供重写的toString()方法,可输出栈中全部元素。5)编写测试程序,new栈对象,调用push和pop方法来模拟压栈弹栈输出的动作。三、在本次实验中的问题和解决方法四、心得体会
献花(0)
+1
(本文系zt5phwyy9yn...首藏)