您的位置:首页 > 编程语言 > Java开发

java面向对象基础 练习 +答案

2016-08-15 16:26 281 查看
一、填空题

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

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

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

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

5.对象拷贝有(对象的引用 )、( )和( )三种。

二、简答题

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

 Java中通过将数据封装、声明为私有的(private),再提供一个或多个公开的(publi

c)方法实现对该属性的操作,以实现下述目的。

 隐藏一个类的实现细节

 防止对封装数据的未经授权的访问。使用者只能通过事先定制好的方法来访

问数据,可以方便地加入控制逻辑,限制对属性的不合理操作。

 有利于保证数据的完整性

 便于修改,增强代码的可维护性。

尽力让封装的每个类里面的属性和方法独立,方便以后操作,减少耦合性就好了。

2.什么是对象?什么是类?二者有何关系? 类是具有相同数据结构(属性)和相同操作功能(行为)对象的集合。对象就是符合某种类所产生的一个实例。对象与类的关系是:

对象的共性抽象为类,类的实例化就是对象。

对象的声明:

类名 对象名=new 类名();

对象的调用:

访问属性:对象名.属性名;

访问方法:对象名.方法名();

类是对现实生活中的一类人或者一类事物的高度抽象,抽取出该类事物共有的属性和方法

由类生成的具体的个体是对象

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

Public class 1.public default protected private

使用对象:类、接口、成员

介绍:无论它所处在的包定义在哪,该类(接口、成员)都是可访问的

2.private

使用对象:成员

介绍:成员只可以在定义它的类中被访问

3.static Java语言面向对象基础

使用对象:类、方法、字段、初始化函数

介绍:成名为static的内部类是一个顶级类,它和包含类的成员是不相关的.静态方法

是类方法,

是被指向到所属的类而不是类的实例.静态字段是类字段,无论该字段所在的类创建了

多少实例,该字

段只存在一个实例被指向到所属的类而不是类的实例.初始化函数是在装载类时执行

的,而不是在创建

实例时执行的. 4.final

使用对象:类、方法、字段、变量

介绍:被定义成final的类不允许出现子类,不能被覆盖(不应用于动态查询),字段值

不允许被

修改.

5.abstract

使用对象:类、接口、方法

介绍:类中包括没有实现的方法,不能被实例化.如果是一个abstract方法,则方法体

为空,该方

法的实现在子类中被定义,并且包含一个abstract方法的类必须是一个abstract类

6.protected

使用对象:成员

介绍:成员只能在定义它的包中被访问,如果在其他包中被访问,则实现这个方法的类

必须是该成员所属类的子类.

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

构造方法特点:方法名和类名完全相同、没有返回值类型

功能:可以构造带参数和无参数的对象。这些对象可以使用类方法。

构造主要用来初始化对象

构造函数应该和类名保持一致可以有参数或者不带参数 无返回类型 必须是public的

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

Scanner sc=new Scanner(system.in)

Person p=new Person

p.age=15;

6.什么是包?如何创建包?如何引用包?

java的包则主要用来组织字节码文件,且必须在文件中声明其所属的包,包层次以点(.)分隔而不是斜杆。

1为了区别那么多类的名字

2packege

3import

三、选择题

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

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

C.封装提高了可重用性 D.封装体中的属性和行为的访问权限相同 可以不相同 程序员定义

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

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

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

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

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

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

4.下面哪些代码段是正确的Java源程序?(BCD )

A.import java.io.*; B.import java.io.*;

package testpackage; class Person{/* do something... */}

public class Test{/* do something... */} public class Test{/* do something... */}

C.import java.io.*; D.package testpackage;

import java.awt.*; public class Test{/* do something... */} public class Test{/* do something... */}

四、判断题 1.类是一种类型,也是对象的模板。( T )

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

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

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

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

6.class是定义类的惟一关键字。(T)

五、改错题

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

public class MyMainClass{

public static void main(String [] args) { TheOtherClass obj = new TheOtherClass("John Smith","Male","UK");

System.out.println(obj.name+' '+obj.gender+' '+obj.nationality);

}

System.out.println("The end of the program! ")

}

public class TheOtherClass{

private String name,gender,nationality;

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

} } this.name=name; this.gender=gender; this.nationality=nationality;

对于学习有困难不知道如何提升自己可以加扣:578024144进行交流得到帮助,获取学习资料
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息