《JAVA面向对象程序设计》练习题-参考答案 下载本文

}

}

this.age = age;

public static void main(String[] args) { Person c = new Person(\, 17); System.out.println(c.name + \ + c.age + \); }

2、以下程序的输出结果为__课程号:101 课程名:ASP 学分:3___。 public class Course { private String cNumber; private String cName; private int cUnit; public Course(String number, String name, int unit) { cNumber = number; cName = name; cUnit = unit; } public void printCourseInfo() { System.out.println(\课程号:\ + cNumber + \课程名:\ + cName + \学分:\ + cUnit); } }

class CourseTest { public static void main(String[] args) { Course c; c = new Course(\, \, 3); c.printCourseInfo(); } }

3、以下程序的输出结果为__汤姆猫体重:20.0斤___。 public class Tom { private float weight; private static String name; public void setWeight(float weight) { this.weight = weight; }

11

}

private void out() { System.out.println(name + \体重:\ + weight + \斤\); }

public static void main(String[] args) { Tom.name = \汤姆猫\; Tom cat = new Tom(); cat.setWeight(20); cat.out(); }

4、以下程序的输出结果_姓名:Tom 年龄:15 家庭住址:金水区 电话:66123456 学校:九中_。 public class Father { String name, address, tel; int age; public Father(String name, int age) { this.name = name; this.age = age; } void out() { System.out.print(\姓名:\ + name); System.out.print(\年龄:\ + age); } void outOther() { System.out.print(\家庭住址:\ + address); System.out.print(\电话:\ + tel); } }

class Son extends Father { String school; public Son(String name, int age) { super(name, age); } void out() { super.out(); super.outOther();

12

}

}

System.out.println(\学校:\ + school);

public static void main(String args[]) { Son son = new Son(\, 15); son.address = \金水区\; son.school = \九中\; son.tel = \; son.out(); }

5、下列程序的运行结果是__12345____。 public class MyClass { int a[] = { 1, 2, 3, 4, 5 }; void out() { for (int j = 0; j < a.length; j++) System.out.print(a[j] + \); } public static void main(String[] args) { MyClass my = new MyClass(); my.out(); } }

四、简答题

1、简述Java中异常处理的机制?

答:首先Java的异常是面向对象的。一个Java的Exception是一个描述异常情况的对象.当出现异常情况时,一个Exception对象就产生了,并放到异常的成员函数里。

Java的异常处理是通过5个关键词来实现的:try,catch,throw,throws和finally。 (1)异常处理:在Java语言的错误处理结构由try,catch,finally三个块组成。其中try块存放将可能发生异常的Java语言,并管理相关的异常指针;catch块紧跟在try块后面,用来激发被捕获的异常;finally块包含清除程序没有释放的资源,句柄等。不管try块中的代码如何退出,都将执行 finally块。

(2)抛出异常:Java语言可以不在方法中直接捕获,而用throw语句将异常抛给上层的调用者。Throw语句就是来明确地抛出一个异常;首先你必需得到一个Throwable的实例句柄,通过参数传到catch中,或者采用new操作符来创建一个。

13

2、什么是继承?

答:通过必要的说明能够实现某个类无需重新定义就拥有另一个类的某些属性和方法,并把这种关系称为继承,先定义的类称为父类,后定义的类称为子类,并且允许多层的继承关系。 3、请简述重载和重写的区别?

答:方法的重写Overriding和重载Overloading是Java多态性的不同表现。

重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。

如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。

如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型。 五、程序设计题

1、按以下要求编写程序

(1) 创建一个Rectangle类,添加width和height两个成员变量 (2) 在Rectangle中添加两种方法分别计算矩形的周长和面积 (3) 编程利用Rectangle输出一个矩形的周长和面积 解答:

public class Rectangle { float width, height; public Rectangle(float width, float height) { this.width = width; this.height = height; } public float getLength(){ return (this.width + this.height) * 2; } public float getArea(){ return this.width * this.height; } public static void main(String [] args) { Rectangle rect = new Rectangle(10, 20); System.out.println(\周长是:\ + rect.getLength()); System.out.println(\面积是:\ + rect.getArea()); } }

2、按以下要求编写程序

14

(1) 编写Animal接口,接口中声明run() 方法 (2) 定义Bird类和Fish类实现Animal接口

(3) 编写Bird类和Fish类的测试程序,并调用其中的run()方法 解答:

public interface Animal { void run(); }

class Bird implements Animal { public void run() { System.out.println(\鸟儿在飞...\); } }

class Fish implements Animal { public void run() { System.out.println(\鱼儿在游...\); } }

public class TestAnimal { public static void main(String[] args) { Bird bird = new Bird(); bird.run(); Fish fish = new Fish(); fish.run(); } }

3、编写一个Frame框架应用程序,要求如下:

(1) 在窗口设置两个菜单“文件”、“编辑”

(2) 在“文件”菜单里添加三个菜单项“打开”、“保存”、“关闭” (3) 在“编辑”菜单里添加两个菜单项“复制”、“粘贴” (4) 点击关闭菜单项时,使程序关闭。 解答:

import java.awt.Color; import java.awt.Frame; import java.awt.Menu; import java.awt.MenuBar; import java.awt.MenuItem;

15