admin 管理员组

文章数量: 887021


2024年2月18日发(作者:account短语)

Java语言面向对象基础(答案)

一、填空题

1.类是一组具有相同(属性)和(行为)的对象的抽象。(实例)是由某个特定的类所描述的一个个具体的对象。

2.(接口)只描述系统所提供的服务,而不包含服务的实现细节。

3.构造方法的方法名与(类名)相同,若类中没有定义任何的构造方法,则运行时系统会自动为该类生成一个(默认构造)方法。

4.在方法体内定义的变量是(局部变量),其前面不能加(public),且必须(初始化)。

5.数组元素作实参时对形参变量的数据传递是(单向值传递),数组名作实参时对形参变量的数据传递是(双向引用传递)。

6.对象作方法形参时,方法实参也用对象,实现(引用)调用。

7.( new)是一个特殊的方法,用于创建一个类的实例。

8.(类)变量在内存中只有一个拷贝,被该类的所有对象共享;每当创建一个实例,就会为(实例)变量分配一次内存,(实例)变量可以在内存中有多个拷贝,互不影响。

二、简答题

1.名词解释:抽象、对象、类、实例、方法、属性、消息、接口、封装、继承、多态性

抽象:是从被研究的对象中舍弃个别的,非本质的或与研究主旨无关的次要特征,而抽取与研究有关的共性内容加以考察,形成对被研究问题的正确的、简明扼要的认识。

对象:是对客观事物的抽象,是类的实例。

类:对对象的抽象,是一种抽象的数据类型。

实例:也就是对象,对象也被称为类的实例化。

方法:类的行为,事物动态特征的抽象。

属性:数据成员,是事物静态特征的抽象。

消息:p65

接口:p87

封装:p61

继承:p66

多态性:p70

2.简述面向对象的基本思想、主要特征和基本要素。P59,主要特征是封装、继承和多态

3.为什么要对类进行封装?封装的原则是什么?

P59:高内聚,松耦合

4.类的封装性、继承性和多态性各自的内涵是什么?

第五章内容

5.什么是对象?什么是类?二者有何关系?

类是对象的模板,对象是类的实例。以类为模板可以创建不同的对象。

6.Java中类定义的一般格式是什么?定义类的修饰符有哪些?各自的特点是什么?

P60

7.Java中成员变量定义的一般格式是什么?成员变量有哪些修饰符?

P39、p50、p61

8.Java中成员方法定义的一般格式是什么?成员方法有哪些修饰符?

P39、p50、p61

9.简述构造方法的特点与作用。 P47

10.Java中创建对象的一般格式是什么?如何初始化对象?如何给对象赋值?

P41

三、选择题

1.下面关于封装性的描述中,错误的是( D )。

A.封装体包含属性和行为 B.被封装的某些信息在外不可见

C.封装提高了可重用性 D.封装体中的属性和行为的访问权限相同

2.下面关于类方法的描述,错误的是( B )。

A.说明类方法使用关键字static B.类方法和实例方法一样均占用对象的内存空间

C.类方法能用实例和类名调用 D.类方法只能处理类变量或调用类方法

3.下面关于包的描述中,错误的是( A )。

A.包是若干对象的集合 B.使用package语句创建包

C.使用import语句引入包 D.包分为有名包和无名包两种

四、判断题

1.类是一种类型,也是对象的模板。( √ )

2.类中说明的方法可以定义在类体外。( × )

3.实例方法中不能引用类变量。( × )

4.创建对象时系统将调用适当的构造方法给对象初始化。( √ )

5.使用运算符new创建对象时,赋给对象的值实际上是一个引用值。( √ )

6.对象赋值实际上是同一个对象具有两个不同的名字,它们都有同一个引用值。(

√ )

7.对象可作方法参数,对象数组不能作方法参数。( × )

8.class是定义类的惟一关键字。( √ )

9.Java语言会自动回收内存中的垃圾。( √ )

五、分析题

分析下面的程序,写出运行结果。

import .*;

import .*;

class MemberVar {

static int

sn = 30;

final int fn;

final int fk = 40;

MemberVar() {

fn = ++sn;

}

}

public class Exercises5_1 extends Applet {

public void paint(Graphics g) {

MemberVar obj1 = new MemberVar();

MemberVar obj2 = new MemberVar();

ring("=" + , 20, 30);

ring("=" + , 20, 50);

ring("=" + , 20, 70);

ring("=" + , 20, 90);

}

}

运行结果是:( )

=31

=40

=32

=40

六、改错题

1.下面的程序中有若干个语法错误,找出后请改正。

public class MyMainClass{

public static void main( ) {

TheOtherClass obj = new TheOtherClass("John Smith","Male","UK");

n(+' '++' '+ality);

}

n("The end of the program! ")

}

public class TheOtherClass{

private String name,gender,nationality;

public TheOtherClass(String name,String gender,String nationality) {

=name;

=gender;

ality=nationality;

}

}

改正后程序:

public class MyMainClass {

public static void main(String args[]) {

TheOtherClass obj = new TheOtherClass("John Smith", "Male", "UK");

n( + ' ' + + ' ' + ality);

n("The end of the program! ");

}

}

class TheOtherClass { //删除中一个文件里面只能有一个公有类

public String name, gender, nationality;

public TheOtherClass(String name, String gender, String nationality) {

= name;

= gender;

ality = nationality;

}

}

2.下面的程序中有若干个语法错误,找出后请改正。

public class Car{

private String carName;

public int mileage;

private static final int TOP_SPEED=50;

abstract void alert();

public static int getTopSpeed(){

return TOP_SPEED;

}

public static void setCarName(){

carName="Bensi";

}

public static void setMileage(){

mileage=180;

}

}

改正后程序:

public abstract class Car { //有抽象方法,定义为抽象类

private String carName;

public int mileage;

private static final int

TOP_SPEED = 50;

abstract void alert();

public static int getTopSpeed() {

return

TOP_SPEED;

}

public void setCarName() { //删除static,静态方法只能访问静态的成员,不能访问非静态成员,非静态方法可能访问静态的成员

carName = "Bensi";

}

public void setMileage() {

mileage = 180;

}

}


本文标签: 对象 方法 封装