面向对象程序学生实验报告2013版 2 联系客服

发布时间 : 星期六 文章面向对象程序学生实验报告2013版 2更新完毕开始阅读75d8335beff9aef8951e0649

实 验 报 告

院(系):信息学院 课程名称:面向对象程序设计(Java) 日期: 班级 专业 实验 名称 所用 软件 实 验 目 的 或 要 求 信息管理与信息系统 学号 姓名 实验室 计算机号 成绩评定 教师签名 601 类的继承 JDK、记事本 掌握类的继承语法及应用 掌握方法的重载和方法的覆盖 掌握子类实例化的过程 掌握抽象类及接口的使用。

1、已知类的定义及所在包,如下图

请问ClassB, ClassC,ClassD分别可以访问ClassA的哪些成员变量。15分 答案:

2、写出如下代码补充完整,并分析代码运行结果

class parent{ String name;

public void setName(String name){ this.name=name;} public void disp(){System.out.println(name);} public void disp1(){System.out.println(“parent”);} }

class child extends parent{ int id;

child(String name,int id){

\\\\调用父类相关构造函数 this.id=id; }

void disp(){ super.disp(); this.disp1();

System.out.println(“id=”+id+”;name=”+name); } }

在一个测试类中输入:

parent p1=new child(“zhangsan”,12): p1.disp();

分析输出的效果。20分

答案:

3、请问sub类中那些行的方法的定义不正确,为什么?20分 public class Base {

public void method() {System.out.println(“aa”);} }

public class Sub extends Base{ 1 public int method() { 2 return 0; 3 }

4 public int method(int x){

5 return x; 6 }

7 protected void method(){} }

答案:

4、请分析如下程序的运行过程:30分 class Base { int i;

Base() {add(1);} void add(int v) { i+= v; }

void print() {System.out.println(i);} }

class Extension extends Base { Extension(){add(2);} void add(int v) { i+= v*2; } }

public class PolyTester {

public static void main(String args[]) { bogo(new Extension()); }

static void bogo(Base b) { b.add(8); b.print(); } }

答案:

5、抽象类的使用:面积之和

请按指导书P31页相关要求,将【代码】替换为Java程序代码。 Geometry.java

public abstract class Geometry { public abstract double getArea(); }

TotalArea.java

public class TotalArea { Geometry[] tuxing; double totalArea=0;

public void setTuxing(Geometry[] t) { tuxing=t; }

public double computerTotalArea() {

【代码3】//用循环语句让tuxing的元素调用getArea方法,并将返回的值累加到totalArea return totalArea; } }

Rect.java

public class Rect extends Geometry { double a,b;

Rect(double a,double b) { this.a = a; this.b = b; }

【代码1】 //重写 getArea()方法 }