Java面向对象程序设计(第二版)袁绍欣 第五章 课后习题(1-8)

1.面向对象的主要特征是什么?

三大特征是:封装、继承和多态。
封装:是指将某事物的属性和行为包装到对象中,这个对象只对外公布需要公开的属性和行为,而这个公布也是可以有选择性的公布给其它对象。
继承:是子对象可以继承父对象的属性和行为,亦即父对象拥有的属性和行为,其子对象也就拥有了这些属性和行为。
多态性:是指允许不同类的对象对同一消息作出响应。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。

2.封装是如何实现的?

封装是将对象的信息隐藏在对象内部,禁止外部程序直接访问对象内部的属性和方法。
java封装类通过三个步骤实现:
(1)修改属性的可见性,限制访问。
(2)设置属性的读取方法。
(3)在读取属性的方法中,添加对属性读取的限制。

3.对象之间如何相互作用?作用的条件是什么?

通过封装与组合来设计,具有“高内聚,低耦合”的特点。比如A类里有B类的引用,则A的实例对象就可以看成B的实例对象组合而成。

4. protected修饰符有何特点?

protected这个修饰符,各大参考书都会这样说:访问权限为类内,包内和子类,因此在父类中定义的方法和成员变量如果为protected修饰的,同包中任意访问,只有父类声明为public时不同包的子类也可以访问。

5. Object都有哪些方法?

1.clone方法
保护方法,实现对象的浅复制,只有实现了Cloneable接口才可以调用该方法,否则抛出CloneNotSupportedException异常。
2.getClass方法
final方法,获得运行时类型。
3.toString方法
该方法用得比较多,一般子类都有覆盖。
4.finalize方法
该方法用于释放资源。因为无法确定该方法什么时候被调用,很少使用。
5.equals方法
该方法是非常重要的一个方法。一般equals和==是不一样的,但是在Object中两者是一样的。子类一般都要重写这个方法。
6.hashCode方法
该方法用于哈希查找,重写了equals方法一般都要重写hashCode方法。这个方法在一些具有哈希功能的Collection中用到。
7.wait方法
wait方法就是使当前线程等待该对象的锁,当前线程必须是该对象的拥有者,也就是具有该对象的锁。wait()方法一直等待,直到获得锁或者被中断。wait(long timeout)设定一个超时间隔,如果在规定时间内没有获得锁就返回。
调用该方法后当前线程进入睡眠状态,直到以下事件发生。
(1)其他线程调用了该对象的notify方法。
(2)其他线程调用了该对象的notifyAll方法。
(3)其他线程调用了interrupt中断该线程。
(4)时间间隔到了。
此时该线程就可以被调度了,如果是被中断的话就抛出一个InterruptedException异常。
8.notify方法
该方法唤醒在该对象上等待的某个线程。
9.notifyAll方法
该方法唤醒在该对象上等待的所有线程。

6.重载的方法之间一般有什么关系?

两个方法的方法名一样,返回值不确定,但是参数的个数和类型必须有不一样的,可以看成重载的方法是一个方法的两种实现。

7.子类覆盖父类方法需要什么条件?子类中定义与父类同名的方法一定是覆盖吗?

1.父类中的方法在子类中必须可见,即子类继承了父类中的该方法(可以显式的使用super关键字来访问父类中的被重写的方法), 如果父类中的方法为private类型的,那么子类则无法继承,也无法覆盖。
2.子类和父类的方法必须是实例方法,如果父类是static方法而子类不是实例方法,或者相反都会报错。
如果父类和子类都是static方法,那么子类重写或者覆盖父类方法。

8.封装、继承与多态在面向对象程序设计中的用途是什么?

封装使得内部实现对用户隐藏,有利于安全操作,继承可以实现对象之间的共性与特性,多态性更贴近人的使用习惯,使程序更方便。
————————————————
版权声明:本文为CSDN博主「谢谢๑‾᷅^‾᷅๑」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_44728197/article/details/88841589

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
java 习题集包括有答案 引 言 6 第一章 JAVA基础 7 一、填空题 7 二、判断题 9 三、选择题 9 四、程序阅读题 26 第二章 控制结构 32 一、选择题 32 二、填空题 48 三、判断题 50 四、程序阅读题 51 五、编程题 55 第三章 字符串 59 一、选择题 59 二、填空题 63 三、判断题 64 四、编程题 65 第四章 数组 66 一、选择题 66 二、判断题 69 三、填空题 70 四、编程题 71 第五章 类和对象 73 一、选择题 73 二、填空题 79 三、程序填空 80 四、问答题 93 五、判断题 94 六、编程题 94 第六章 面向对象程序设计 97 一、选择题 97 二、填空题 118 三、判断题 120 四、编程题 123 第七章 数据库的连接 129 一、选择题 129 二、填空题 131 三、判断题 131 四、编程题 131 第八章 多线程 133 一、填空题 133 二、选择题 134 三、多项选择 147 四、判断题 147 五、程序分析题 148 六、程序设计题 149 第九章 异常处理 151 一、选择题 151 二、填空题 155 三、判断题 157 四、程序阅读题 158 五、程序题 163 第十章 文件操作 165 一、选择题 165 二、填空题 170 三、判断题 174 四、读程序题 177 五、问答题 182 六、编程题 183 第十一章GUI界面设计 185 一、选择题 185 二、填空题 194 三、判断题 196 四、程序填空 197 五、简答题 214 六、编程题 214 参考答案 230 第一章 java基础 230 一、填空题 230 二、判断题 232 三、选择题 232 四、程序阅读题 232 第二章 控制结构 233 一、选择题 233 二、填空题 233 三、判断题 235 四、程序阅读题 235 五、编程题 236 第三章 字符串 255 一、选择题 255 二、填空题 255 三、判断题 255 四、编程题 255 第四章 数组 265 一、选择题 265 二、判断题 265 三、填空题 266 四、编程题 266 第五章 类和对象 269 一、选择题 269 二、填空题 270 三、程序填空 271 五、判断题 274 六、编程题 274 第六章 面向对象程序设计 293 一、选择题 293 二、填空题 294 三、判断题 295 四、编程题 296 第七章 数据库的连接 352 一、选择题 352 二、填空题 352 三、判断题 353 四、编程题 353 第八章 多线程 356 一、填空题 356 二、选择题 357 三、多项选择 357 四、判断题 357 五、程序分析题 357 六、程序设计题 357 第九章 异常处理 391 一、选择题 391 二、填空题 391 三、判断题 392 四、程序阅读题 392 五、程序题 393 第十章 文件操作 396 一、选择题 396 二、填空题 397 三、判断题 398 四、读程序题 398 五、问答题 399 六、编程题 401 第十一章 GUI界面设计 417 一、选择题 417 二、填空题 417 三、判断题 419 四、程序填空 419 五、简答题 420 六、编程题 422
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值