面向对象---谁来做?
相比函数,面向对象是一个更大的封装,根据职责在一个对象中封装多个方法。
- 在完成某个需求前,首先确定职责--要做的事情(方法)
- 根据职责确定不同的对象,在对象内部封装不同的方法
- 最后完成代码,就是顺序的让不同的对象调用不同的方法。
特点:
- 注重对象和职责,不同的对象承担不同的职责。
- 更加适合应对对复杂需求的变化,是专门应对复杂项目开发,提供的固定套路。
面向对象的两个核心概念:类和对象
- 类的定义:是对一群具有相同特征(属性)或者行为(方法)的事物的一个统称,不能直接使用,类相当于制造飞机时的图纸,是一个模板,是负责创建对象的。相当于图纸。
- 对象定义:是由类创建出来的一个具体存在,可以直接使用的,相当于用图纸造出来的飞机。
- 类和对象的关系
>类是模板,对象是根据类这个模板创造出来的,应该先有类,再有对象。
>由哪一个类创建出来的对象,就拥有哪一个类中定义的属性或方法。
> 类只有一个,而对象可以有很多个,不同对象之间属性可能各不相同。
>类中定义了什么属性和方法,对象中就有什么属性和方法,不可能多,也不可能少。
4. 类的设计:
在程序开发中,要设计一个类,通常需要满足一下三个要素:
- 类名:这类事物的名字,满足大驼峰命名法(每个单词首字母大写并且单词之间没有下划线)
>类名的确定方法:名词提炼法分析整个业务流程,出现的名词通常就是要找到的类。
- 属性:这类事物具有什么样的特征
>属性的确认:对对象特征的描述,通常可以定义成属性。
- 方法:这类事物具体什么样的行为
>方法的确认:具有的行为(动词)。通常可以定义成方法
举例
小明,今年18岁,身高1.75,他喜欢吃东西,他爱跑步
小丽,今年17岁,身高1.65,她喜欢吃东西,她不爱跑步
其中,小明和小丽都是人物,名词,可以定义成类的名字,是人类(person)
名字、年龄和身高,定义成属性name,age,height
吃和跑为动词,可以定义为方法,eat(), run()