《面向对象技术(本)》课程第四阶段练习题
、填充题
1超类的private成员不能被子类继承。
2.在声明一个类变量时,前面必须要加上static修饰符。
3. import java.util.*;语句可导入Java的实用包中所有的类。
4.方法的覆盖是后期绑定,方法的重载是前期绑定。
5.写出一个表达式:输出角度300的余弦值Math.cos(30*3.14/I80。
二、选择题
旦1.找出有关类的正确说法。
a. 类具有封装性,所以类的数据是不能被访问的。
b. 类具有封装性,但可以通过类的公共接口访问类
中的数据。
c. 声明一个类时,必须用Public修饰符。
d. 每个类中,必须有main方法,否则程序无法运
行。
e.
A 2.将类的成员的访问权限设置为默认的,则该成员能被
a. 同一包中的类访问
b. 其它包中的类访问
c. 所有的类访问
d. 所有的类的子类访问
C 3.下面哪一种是正确的方法重栽
a. int fun (i nt afloat b{} float fun (i nt a,float b{}
b. float fun (i nt a,float b{}
float fun (i nt x,float y{}
c. float fun( float a{}
float fun (float a,float b{}
d. flaot fun 1(i nt a,float b{}
float fun 2(i nt a,float b{}
D 4.下面关于继承的说法那个是正确的
a. 超类的对象就是子类的对象。
b. 一个类可以有几个超类。
c. 一个类只能有一个子类。
d. 一个类只能有一个超类。
C 5.下面关于多态性的说法那个是正确的
a. 一个类中,不能有同名的方法。
b. 子类中不能有和父类中同名的方法。
c. 子类中可以有和父类中同名且参数相同的方法。
d. 多态性就是方法的名字可以一样,但返回的类型必须不一样。
三、简答题
1. 什么是类,什么是对象?
在面向对象的程序设计语言中,类是一种特殊属性类型,类可以看作具有共同属性和行为的
事物的抽象。
在类中包含了变量和与变量有关的操作(方法)。
对象是类
电话”类代表电话
的实例。
类和对象的关系就如同属性类型和变量的关系。
例如, 这一类事物,而电话的对象代表一个具体的电话。
2. 类的封装的目的是什么? 当外部的类可以没有限制地直接访问、修改类中变量时,是非常危险的。
因此必须 限制类的外部程序对类内部成员的访问,这就是类的封装目的。
类把属性和方法封 装起来,同时创建一些允许外部访问的方法,通过这样的方法来访问类的成员变 量。
封装的另一目的是细节屏蔽,便于程序功能的扩展和程序的维护。
3. Java 中有几种访问权限,各种访问权限的级别是什么?
Java 中有四种访问权限: 公有的(Public 、保护的(protected 默认的、私有的 (P rivate 。
各种权限的访问级别如下表:
null 表示空对象,即没有创建类的任何实例。
当我们声明对象时,如果没有用 new 实例化时,此时它就被初始化为一个特殊的值 “null 。
”而当我们在类的方法定义中 “thi s 表示。
up er 表示对某个类的超类 的引
用,用super 来引用被子类屏蔽的超类的成员。
5.什么是最终类和抽象类?
不能被继承的类称为最终类。
在声明类时,用 final 将类声明为最终类,这样此方 法不会在子类中被覆盖(即子类中不能有和此方法同名的方法)。
抽象类则是必须 P ublic P rotected private 同一类 允许 允许 允许 允许 null 、this 、 同一包 允许 允许 允许 不允许 不同包的子 类 所有类 允许 允许 允许 不允许 不允许 super 对象运算符分另j 表示什么? 不允许
不允许
不允许
需要引用正在使用该方法的对象时,可以用
被子类覆盖的类。
在声明类或方法时,用关键字abstract可以将类或方法声明为抽
象类或方法。
抽象方法没有方法体,含有抽象方法的类即为抽象类,它是不能实例化的类。
6.什么是多态性,什么重载和覆盖?
多态性是面向对象程序设计的重要特征,是指同一个名字的若干个方法,有不同的实现(即方法体中的代码不一样)。
多态性是通过方法的重载(overloadi ng和覆盖(override来实现。
方法的重载是指在一个类中,有若干个方法名字相同,但方法的参数不同,在调用时,根据参数的不同来决定执行那个方法。
重载的关键是参数必须不同,即参数的类型或个数必须不同。
如果在子类和超类中有同名的方法(参数也相同),子类中的方法将覆盖超类的方法,这就是覆盖。
通过覆盖可以使同名的方法在不同层次的类中有不同的实现。
四、编程题
1 .声明一个类Person成员变量有姓名、年龄、性别。
有成员方法以显示
姓名、年龄和性别。
class Person {
String n ame;
int age;
String sex;
p ublic String showName( { return n ame;
p ublic int showAge( { retur n age;
p ublic String showSex;( { retur n sex;
2.声明一个矩形类Rectangle,提供2个方法计算矩形的周长和面
积。
并用main方法来测试。
public class Reta ngle { private double len gth;
p rivate double width;
public Retangle(doublel, double w { leng th=l;
width=w;
p ublic double calc Penmeter( { return 2*(le ngth + width;
p ublic double calcAera( { return len gth * widthv;
public static woid main( Strin gH args {
Reta ngle areta ngle = Reta ngle(640m480;
System.out.println(面积是:” + aretangle.calcArea( +周长是:” + areta ngle. calc Perimeter (;。