1.什么是对象:万物皆对象。对象是具体物体:拥有属性、拥有行为、很多零散的东西,封装成一个整体。
1.1举例:王二小:属性:姓名、年龄、身高、体重、......行为:走路、吃饭、放羊、睡觉、......
1.2python中的具体体现:python是一门特别彻底的面向对象(OOP)的语言:
其他语言:基本数据类型:int、float、bool、......
对象类型:String、Array、......
python:对象类型:int、float、bool、list等等都是对象。
2.面向过程与面向对象:都是一种解决问题的思路(思想)
2.1面向过程:在解决问题的时候,关注的是解决问题的每一个过程(步骤)。
2.2面相对象:在解决问题的时候,关注的是解决问题所需要的对象。
2.3举个例子:做好饭后洗碗
2.3.1面向过程:洗菜、点火倒油、放菜及材料、翻炒、出锅、放水、放碗、倒洁洁灵、开始刷、擦干水、摆放好。
2.3.2面相对象:我拥有对象->对象会:技能1:做饭(洗菜、点火倒油、放菜及材料、翻炒、出锅)。技能2:洗碗(放水、放碗、倒洁洁灵、开始刷、擦干水、摆放好)。
2.4对比:
面向过程和面向对象都是解决的问题的一种方式(思想):面向对象本身是对面向过程的封装。
面相过程编程最重要的是什么?按步骤划分,把一个任务,分解成具体的每一个步骤。
面相对象编程最重要的是什么?按照功能对象进行划分、找到对象,确立对象属性和行为。
如何从面向过程编程过度到面向对象编程:
(1)一样的,列举出一个任务具体的实现步骤
(2)试图分离这些实现步骤中的功能代码块。
(3)将这些代码块,划分到某一个对象中。
(4)根据这个对象以及对应的行为,抽象出对应的类。设计类:
3.类:
3.1什么是类:某一个具体对象特征的抽象
例如:张三这个具体的人:属性:年龄18、身高180、体重250、......行为:吃:吧唧嘴、喝:放白糖、嫖:不给钱、赌:没赢过、......
抽象出的类:不良青年:属性:年龄、身高、体重、......行为:吃、喝、嫖、赌、......
3.2类的作用:根据抽象的类,生产处具体的对象。
例如:类:不良青年:属性:年龄、身高、体重、......行为:吃、喝、嫖、赌、......
对象:张三、李四、王五。拥有各自的身高、体重、行为。但是都满足不良青年的特性。
3.3类的组成:名称、属性、方法
一定要注意:以上属性和方法,都是抽象的概念。在产生对象之后,对象才拥有具体的属性值,和方法实现。
3.4列举生活中的类:类:钱
对象:1毛钱、2毛钱、5毛钱
类:汽车
对象:奥拓、奥迪、马自达
3.5对象和类的关系:对象->抽象->类->实例化->对象