java第五章习题 p73

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

抽象 继承 封装 多态

 

2.封装是如何实现的?

封装是通过访问控制符实现的

 

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

对象之间通过发消息相互作用

作用条件:

1.引用必须真实引用了真实的对象

2.被访问对象必须定义了相应的属性和方法

3.被访问的属性或方法必须具有访问权限

 

4.protected修饰符有何特点?

包访问权限,继承访问权限。(子类在继承父类的时候,首先应该满足父类可被访问,例如当子类和父类不在同一个包当中时,父类修饰符必为public;在父类能被访问的前提下,凡是修饰符为public或是protected的父类属性成员或是方法能被子类所访问;private的属性成员或是方法则不能被访问。)

 

5.Object都有哪些方法?

 

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

方法名称相同,参数类型或个数不同(若方法名称相同,参数相同,返回类型不同,则编译不能通过)

 

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

条件:方法名称相同,参数相同,返回类型相同

不一定是覆盖,还可能是重载。

 

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

将我们设计的程序进行包装,变成一个黑箱,只留几个接口供使用者用。而内部的怎么运行全部信息隐藏,这是封装。

继承和多态则是我们在设计过程中可以使用的很好的工具,有了他们我们不需要写很多重复的代码,仅仅简单便可直接用之前写过的代码。

而这个过程我们是不想让别人知道,别人也不需要知道的。

好比我们是房子的设计师,我们来设计房子的图纸,图纸相同的地方我们可以直接框起来选择并且复制,需要改动的地方用橡皮擦擦掉后做修改。

设计图纸画完之后这样的房子可以建在很多地方,这便是“类的实体化”,然后我们需要保护自己的知识产权,所以会进行封装,弄上水印之类的。

 

9.设计Src和Dis两个类, Src中有一个被封装的属性,类型为int(要求为非负值),每当我们通过特定方法更改Src对象中的这个属性后,Dis对象都能得到通知,并向Src发消息获得此属性值。

 

 1 class Src{
 2     private int num = 0;
 3     Dis d;
 4     public Src() {}
 5     public Src(int i) {
 6         if(i >= 0) {
 7             num = i;
 8         }
 9     }
10     public void SetDis(Dis di) {
11         if(di!=null) {
12             d=di;
13         }
14     }
15     public void ChangeNum(int i) {
16         if(i >= 0) {
17             num = i;
18             d.Message();
19         }
20     }
21     public int GetNum() {
22         return num;
23     }
24 }
25 
26 class Dis{
27     Src s;
28     public Dis() {}
29     public Dis(Src sr) {
30         //建立联系
31         s=sr;
32         s.SetDis(this);
33     }
34     public void Message() {
35         System.out.println("the num is changed:"+s.GetNum());
36     }
37 }
38 
39 public class Src_Dis {
40 
41     public static void main(String[] args) {
42         Src sr = new Src(1);
43         Dis di = new Dis(sr);
44         for(int i=0;i<10;i++) {
45             sr.ChangeNum(i);
46         }
47     }
48 }
Src_Dis

 

posted @ 2019-10-06 21:42  Liiiiiiiiiiinnnnnnnn  阅读(147)  评论(0编辑  收藏  举报