‘’’
面向对象英文单词:Object Oriented 简称:O O
面向对象的学习:
面向对象的语法学习(简单,靠记忆就行,比较多)
面向对象的思想学习(稍微有点难度,主要是前期不太适应)
面向对象的优势:
能够实现良好的程序结构,方便程序的开发和管理维护
效率:
运行效率:计算机 面向对象效率不如过程化的快
开发效率:程序员 面向对象比过程化开发要方便的多,方便了程序员
面向对象和面向过程开发的区别:
面向过程:
吃饭 -> 自己做饭吃(调用对应的函数)
喝水 -> 自己倒水喝(调用对应的函数)
洗衣服 -> 自己洗衣服(调用对应的函数)
睡觉 -> 自己拿睡衣(调用对应的函数)
去公司 -> 自己走路去(调用对应的函数)
送礼 -> 自己带着礼物去(调用对应的函数)
…
面向对象:
女朋友:
吃饭 -> 喊一声女朋友帮你搞定
喝水 -> …
洗衣服 -> …
睡觉 -> …
去公司 -> …
送礼 -> …
…
面向对象的结构特色:
高内聚 (具有关联的功能,总结在一个结构当中)
低耦合 (没有关联的功能,放在不同的结构中)
面向对象的单词:
OO 面向对象
OOP 面向对象的程序开发
OOA 面向对象的程序分析
OOD 面向对象的程序设计
OOI 面向对象的程序实现
OOA -> OOD -> OOI 面向对象程序开发的顺序(OOP)
类和对象
类: (类就是抽象的概念而已)
1. 是一个实物特征的集合,是一个抽象的概念
2. 没有具体实施的行为也是一个类,抽象的概念,存在于脑海中
对象: (对象是具体的实物或者行为)
1. 对象是真真正正存在的实物,你看的见摸得着,不需要想象。
2. 真是发生过的行为就是对象,你不需要想象,因为真的做了
类和对象的关系:
面向对象开发中必不可少的内容。
1. 类是由对象总结而来。这个过程叫做抽象化
2. 对象是由类具体实施而来。这个过程叫做实例化
创建文件:
习惯使用小写字母当做文件名,可以使用下划线进行分割。
类名的书写规范:
使用驼峰命名法:
大驼峰: MyCar XiaoBaiTu.....(首字母大写)
小驼峰: myCar xiaoBaiTu.....(第一个字母小写,后首字母大写,很少使用)
类的组成:
空调是一个类:
特征:白色,1000元,220V,1.5匹,美丽牌
coloe = '白色'
price = '1000元'
dian = '220V'
power = '1.5匹'
grand = '美丽牌'
功能:制冷,加热,吹风。。。。
def make_cool():
制冷功能
def make_hot():
加热功能
def make_wind():
吹风功能
类中的内容只有两个,属性和方法
属性:用于描述特征的变量
方法:用于描述功能的函数
也有一种说法:类中只有属性
类的书写例子:
class XiaoMing: # 必须使用class关键字
#属性:
sex ='男'
age = '23'
name = '小明'
height = '158厘米'
weight = '80公斤'
#方法:
def est(self):
print('吃饭功能')
def drink(self):
print('喝水功能')
def study(self):
print('学习功能')
类的书写规则:
1. 声明一个类必须使用的class关键字
2. 类名的声明需要符合驼峰命名法(推荐)
3. 类中只能存在两种内容:属性和方法,除此之外不允许出现其他内容
4. 声明成员属性的时候,变量必须赋值
5. 声明成员方法的时候,按照函数声明规范即可(参数中会自动添加self参数)
对象的书写例子:
#首先先写一个类:
#成员属性
class RuiJie:
grand = '福特'
price = '34万'
color = '灰色'
persons = '7座'
#成员方法
def move(self):
print('汽车启动了')
def air(self):
print('汽车空调制冷中')
def music(self):
print('汽车音乐播放中')
将汽车类实例化一个对象
#调用类得到一个对象
car = RuiJie()
查看类的信息:
1. 类的ID
print(id(RuiJie))
2. 类的类型 # 结果为:type类型
print(type(RuiJie))
3. 类的值 # 结果为:RuiJie 定义的类就是一种新的数据类型
print(RuiJie)
补充信息:其实所有的数据类型本质上都是一个类
对象的数据类型就是实例化它的类
获取类和对象中所属成员的信息
类:类名.dict
对象:对象名.dict
类成员的操作:
成员属性: (和变量一样)
1.访问 类名.成员属性名
2.修改 类名.成员属性名 = 新值
3.删除 del 类名.成员属性名
4.添加 类名.成员属性名 = 值
成员方法:
1.访问 类名.方法名()
2.修改 类名.方法名 = 新的函数
3.删除 del 类名.方法名
4.添加 类名.新方法名 = 函数(也可以是lambda表达式)
对象成员的操作:
成员属性:
1.访问 对象.成员属性名
2.修改 对象.成员属性名 = 新值
3.删除 del 对象.成员属性名(必须是属于当前对象的成员才行)
4.添加 添加.成员属性名 = 值
成员方法:
1.访问 对象.成员方法名
2.修改 对象.成员方法名 = 新的函数
3.删除 del 对象.成员方法名
4.添加 对象.成员方法名 = 函数(也可以是lambda表达式)
注意:
1. 实例化对象的时候通常情况下类中的成员不会在对象中复制一份
2. 访问对象成员的时候,只要没有该成员,对象会向实例化它的类查找
3. 对象成员的添加和修改,都只会影响当前对象本身,不会影响类和其它对象
4. 删除对象成员的时候,必须是该对象自身的成员才可以删除,不可以删除类和其它对象
‘’’