Java实验指导(3)

2019-04-02 22:03

2.以下程序的运行结果?

import java.util.Calendar; class Time {

private Calendar t;

private int y, m, d, hh, mm, ss; Time (){

t=Calendar.getInstance(); y=t.get(t.YEAR);

m=t.get(t.MONTH)+1; d=t.get(t.DATE);

hh=t.get(t.HOUR_OF_DAY); mm=t.get(t.MINUTE); ss=t.get(t.SECOND); }

public String getDate() {

return y+\年\月\日\ }

public String getTime() {

return hh+\时\分\秒\ } }

public class EXP3_3{

public static void main(String[] args){ Time t=new Time();

System.out.println(\当前日期:\ System.out.println(\当前时间:\ } }

实验3 Java继承与接口(4学时) 1. 实验目的

掌握继承、抽象类、抽象方法和接口的概念,理解Java继承的优势,掌握extends、implements、super和final关键字的使用,掌握继承过程中构造方法的调用顺序,掌握继承体系中方法覆盖的机制,掌握抽象类和接口的区别,理解类与接口,接口与接口之间的实现与继承关系。

2. 实验类型

设计型

11

3. 实验基本要求

1. (与上课例子一致)假定要为某个公司编写员工工资支付程序,这个公司有各种类型的员工员(Employee),不同类型的员工按不同的方式支付工资: (1)经理(Manager)——每月获得一份固定的工资

(2)销售人员(Salesman)——在基本工资的基础上每月还有销售提成。 (3)一般工人(Worker)——则按他每月工作的天数计算工资。

根据上述要求试用类的继承和相关机制实现这些功能,设计一个测试类EmployeeDemo,分别创建经理、销售人员和一般工人这三个类的对象,并输出每种员工的工资。(提示:应设计一个抽象的员工类(Employee)描述所有雇员的共同特性,这个类应该提供一个计算工资的抽象方法ComputeSalary(),使得可以通过这个类计算员工的工资。经理、销售人员和一般工人对应的类都应该继承这个类,并给出每种员工工资的计算方法,进而给出它的具体实现。)

2. 假定根据学生的3门学位课程的分数决定其是否可以拿到学位,对于本科生,如果3门课程的平均分数超过60分即表示通过,而对于研究生,则需要平均超过80分才能够通过。根据上述要求,请完成以下Java类的设计:

(1)设计一个基类Student描述学生的共同特征(包括的属性:名字(name),A课程的成绩(classA),B课程的成绩(classB),C课程的成绩(classC),包括的方法:getAverage(),计算3门课的平均成绩)。

(2)设计一个描述本科生的类Undergraduate,该类继承并扩展Student类(除了继承父类的属性和方法外,还包括一个方法isPass(),判断该本科生是否可以拿到学位。提示:调用从父类继承来的getAverage()方法获得3门课程的平均成绩)。

(3)设计一个描述研究生的类Graduate,该类继承并扩展Student类(除了继承父类的属性和方法外,还包括一个方法isPass(),判断该研究生是否可以拿到学位。提示:调用从父类继承来的getAverage()方法获得3门课程的平均成绩)。

(4)设计一个测试类StudentDemo,分别创建本科生和研究生这两个类的对象,并输出相关信息。

3.编写程序,定义一个计算面积的接口Area,其中包含一个计算面积的抽象方法calculateArea()。然后设计圆Circle和矩形Rectan两个类实现这个接口中的方法。最后定义一个计算圆和矩形的面积的测试类AreaDemo。提示:Circle类包含的属性包括:常量PI(定义为public static final double PI=3.14159),成员变量半径:radius,要实现接口中的方法calculateArea();Rectan类包含的属性包括:矩形的长和宽,要实现接口中的方法calculateArea()。

4. 实验思考题

1.阅读如下所示的3个Java类的定义,分析它们之间的关系,写出运行结果。 class SuperClass { int x;

SuperClass() { x=3; System.out.println(\ }

12

void doSomething() { System.out.println(\}

}

class SubClass extends SuperClass { int x;

SubClass() { super(); //调用父类的构造方法 x=5; //super( ) 要放在方法中的第一句 System.out.println(\ }

void doSomething( ) {

super.doSomething( ); //调用父类的方法 System.out.println(\ System.out.println(\

} }

public class Inheritance {

public static void main(String args[]) { SubClass subC=new SubClass(); subC.doSomething(); } }

2.以下程序的运行结果? public class EXP3_7 {

protected String xm; //具有保护修饰符的成员变量 protected int xh;

void setdata(String m,int h) //设置数据的方法 {

xm =m; xh = h; }

public void print() //输出数据的方法 {

System.out.println(xm+\ } }

class EXP3_8 extends EXP3_7{ protected String xy; protected String xi;

public static void main(String args[]){ EXP3_7 p1 = new EXP3_7();

13

p1.setdata(\李四\ p1.print();

EXP3_8 s1 = new EXP3_8() ;

s1.setdata(\张三\调用父类的成员方法 s1.xy=\成都信息工程学院\访问本类的成员变量 s1.xi=\计算机系\访问本类的成员变量 s1.print();

System.out.print(s1.xm+\ } }

3.以下程序的运行结果? class Point {

protected int x, y; Point(int a, int b) { setPoint(a, b); }

public void setPoint(int a, int b) { x=a; y=b; } }

class Line extends Point { protected int x, y; Line(int a, int b) { super(a, b); setLine(a, b); }

public void setLine(int x, int y) { this.x=x+x; this.y=y+y; }

public double length() {

int x1=super.x, y1=super.y, x2=this.x, y2=this.y;

return Math.sqrt((x2-x1) * (x2-x1) + (y2-y1) * (y2-y1)); }

public String toString() {

return \直线端点:[\ x + \直线长度:\ } }

public class EXP3_10{

public static void main(String args[]) { Line line=new Line(50, 50);

System.out.println(\

14

} }

4.以下程序的运行结果? interface NL{ //定义接口 int year = 2004; int age(); void output(); }

public class EXP3_13 implements NL{ //实现接口 String xm; //类自己的成员变量(姓名) int csrq; //类自己的成员变量(出生日期) public EXP3_13(String n1,int y){ //类构造方法 xm = n1; csrq = y; }

public int age(){ //实现接口的方法

return year - csrq; //这里直接使用了接口中的常量year }

public void output() { //实现接口的方法

System.out.println(this.xm +\今年的年龄是\岁\ }

public static void main (String args[]) //类自己的成员方法 {

NL a = new EXP3_13(\张三\ a.output(); } }

实验3 Java多态与异常处理(4学时) 1. 实验目的

掌握类的多态性、异常和错误的概念,掌握多态的使用方法,掌握instanceof、throw和throws关键字的含义,掌握子类对象与父类对象的关系,掌握异常的捕获和抛出,掌握使用try-catch-finally结构进行异常处理,学会用throws从函数中抛出异常,学会创建自定义异常,以及手工抛出(产生)异常的throw语句。

2. 实验类型

设计型

15


Java实验指导(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:热压机培训

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: