9.1 答:对象(object)代表现实世界中可以明确标识的一个实体。类是一个模板、蓝本或者说是合约,用
来定义对象的数据域是什么以及方法是做什么的。一个对象是类的一个实例。 可以从一个类中创建多个
实例。
9.2 类的声明和定义
9.3 答:先定义好类,然后以类名声明变量。
9.4 答 :类 对象名=new 类的构造方法;
9.5 答:构造方法必须具备和所在类相同的名字。
构造方法没有返回值类型,甚至连 void 也没有。
构造方法是在创建一个对象使用 new 操作符时调用的。 构造方法的作用是初始化对象。
9.6 答:当且仅当类中没有明确定义任何构造方法时才会自动提供。
9.7 哪个操作符用于访问对象的数据域或者调用对象的方法?
答:“.”
9.8 答:new 声明对象的时候,没有引用变量。直接调用实例方法的方式。这个对象就是匿名对象
9.9 什么是 NullPointerException?
答:当调用值为 null 的引用变量上的方法时会发生此类异常。 在通过引用变量调用一个方法之前,确保
先将对象引用賦值给这个变量。
9.10 答:数组是对象,可以包含,就是该类型或对象的初始值
9.11 下面每个程序中有什么错误?
答:a.ShowErrors 类本身没有构造函数,无法构造
b.类中没有 x()实例方法,无法调用
c.c 一开始声明变量,却没有声明应用变量,所以 c 的值为 null,无法调用方法
d.通 a
9.12 下面代码有什么错误?答:第 3 行代码创建了一个对象,但是 String s 没有任何值,无法构建对象
9.13 下面代码的输出是什么?答:main 函数声明自己所在类,创建了对象,初始化了 x,boolean 初始化
的值为 false,所以打印的为 false
9.14 用 Date 类新建一个对象 调用 Date 类的方法 toString 显示当前时间;
9.15 同 Date 一样 p1.distance(p2)输出;
9.16 包含类 Date、Random、Point2D,
9.17 假设 F 类在 a 中定义,f:是 F 的一个实例, 那么 b 中的哪些语句是正确的?
答:f 是实例,所以前四个都正确;F 为对象,则只能访问静态变量和方法,所以第六句和第八句正确。第
五句和第七句错误。
9.18 如果合适的话,在出现? 的位置添加 static 关键字。
答:第一处和第二处
9.19 能否从静态方法中调用实例方法或引用一个实例变量?能否从实例方法中调用静态方法或引用一个
静态变量? 下面代码错在哪里?
答:静态方法中不能调用实例方法,实例方法可以调用静态方法,上面代码就是静态方法调用了实例方法。
实例方法必须通过创建对象,然后通过对象来调用响应的实例方法。
9.20 答:访问器方法就是访问类中私有数据域的方法,修改器方法就是修改类中私有数据域值的方法。访
问器 get+数据域名,修改器 set+数据域名
9.21 数据域封装的优点是什么?
答:便于维护,不易被篡改
9.22 在下面的代码中, Circle 类中的 radius 是私有的,而 myCircle 是 Circle 类的一个对象, 下面髙亮
的代码会导致什么问题吗?如果有问题的话, 解释为什么。
答:无法获取到 radius。实例无法获取到类的私有数据域 climb the mountain
9.23 描述传递基本类型参数和传递引用类型参数的区别,并给出下面程序的输出:
答:基本类型传递的是值,引用型传递的是指针。count 为 101,times 为 0
9.24 显示下面程序的输出:
答:第一次交换了,第二次没有交换。第一次传入的是引用指针,第二次传入的是值
9.25 答:1,2//2,1//2,1//1,1
9.26 null
9.27 下面的代码有什么错误?
答:对象数组初始化的时候,将每个对象引用值都初始化为 null。dates[0],对应的是 null,无法 toString
9.28 如果类中仅包含私有数据域并且没有设置 set 方法.该类可以改变吗?
答:可以改变,这种类不是为不可变对象。还可以通过引用的方式进行修改
2,1//
//1234567//7654321//1234567
9.29 答:不可以,没有引用类型对象数据类型。
9.30 答:可以改变,可以通过 get 获取到 values,然后赋值
9.31 5,2,0
9.32 this 调用实例方法的对象和调用同一个类的里一个构造方法;
9.33 第二个构造方法的 p 无法调用应该改为 this.p=p;
9.34 id 为私有 this 不能直接赋值给 id;