一、面向过程的思想和面向对象的思想
面向对象和面向过程的思想有着本质上的区别, 作为面向对象的思维来说,当你拿到一个问题时,你分析这个问题不再是第一步先做什么,第二步再做什么,这是面向过程的思维,你应该分析这个问题里面有哪些类和对象,这是第一点,然后再分析这些类和对象应该具有哪些属性和方法。这是第二点。最后分析类和类之间具体有什么关系,这是第三点。
面向对象有一个非常重要的设计思维:合适的方法应该出现在合适的类里面
二、对象和类的概念
对象是用于计算机语言对问题域中事物的描述,对象通过“属性(attribute)”和“方法(method)”来分别对应事物所具有的静态属性和动态属性。
类是用于描述同一类的对象的一个抽象的概念,类中定义了这一类对象所具有的静态属性和动态属性
类可以看成一类对象的模板,对象可以看成该类的一个具体实例。
三、如何抽象出一个类
有两个方面,一方面是它的静态属性,另一方面是它的动态属性。
反映到JAVA里面的类怎么包装它呢?一方面成员变量,另一方面是方法。
四、类(对象)之间的关系
1、关联关系(最弱的一种关系)
关联关系是最弱的一种关系,咱们两个类之间有关系,或者两个对象之间有关系,但关系不是很紧密。
2、继承关系(比较强的一种关系)
继承关系封装了这样一种逻辑:“XX是一种XX”,只要这东西能说通了,就可以考虑用继承关系来封装它。
3、聚合关系(整体和部分)(比较强的一种关系)
聚合就是一个整体与部分的关系。我们说“XX是XX的一部分”,只要说得通,那么他们之间的关系就是聚合关系
聚合关系分得再细一点的话就可以分成聚集关系和组合关系
4、实现关系
作为父类来说,我觉得我应该具有这样一个方法,但我不知道怎么去实现,谁去实现,我的子类去实现,这就是实现关系。
和实现关系息息相关的还有一种关系叫多态。
5、多态