day12-面向对象2

面向对象

类和对象

纯万物皆对象

面向对象的思想

面向对象OOP:面向对象的编程
利用对象的思想解决问题

第一个纯面向对象的语言:small talk
比较出名的面向对象语言:JAVA
1+2=3
对于java就是简单地运算
对于small talk和python来说:对1这个对象运行+方法,参数是2,得到3这个对象

纯万物皆对象
面向过程:洗衣服---水管---螺丝---钢铁---玻璃---------洗衣机---洗衣服
面向对象:谁家有洗衣机------拿来用(不掏钱)
  • 现实世界中的对象
1. 有什么:属性
2. 能做什么:方法

小狗:
	属性:
		体重
		年龄
		四个腿
		速度
		颜色 #000000~#999999
		血统
		
	方法:
		能叫
		吃
		睡
		拆家
		掉毛
		讲笑话
		排泄

对象=属性+方法
  • 属性
1. 属性可以由小对象构成
2. 相对抽象的属性(抽象的内容,也是对象)
  • 方法
对象之间彼此调用
	1. 方法被别人调用
	2. 调用别人的方法
	3. 自己调用自己的方法

如何建立解题思路

# 现实世界
从北京到上海
1. 面向过程
		将过程细化,细化到不能再细化,任何情况全部都要考虑在内,所有方案都要实现
		打车去机场,安检,上飞机,找座位,关手机,系安全带,放饭,厕所,下飞机。
		(如果飞机出事儿了:降落伞,直接跳,救生衣,急救)
2. 面向对象的思路:
		只考虑对象
		使用东航白金卡特权---空姐、空少---下飞机
		如果出事儿了:等机长
		
		
		1. 选取对象:航空公司(航空公司负责飞机上的相关所有事物)
		2. 调用方法:交通运输、上飞机、下飞机......
  • 解决问题
1. 找到合适的对象
2. 调用合适的方法

涡轮洗衣机
滚筒洗衣机
搓衣板
手搓
硬泡

面向对象在计算机中的使用

核心:在计算机中模拟现实世界,从而解决现实世界的问题

下载峰值:10M每秒
上传速度:1M每秒

现实:	1. 沟通	2. 购物	3. 吃饭	4. 娱乐计算机:	1. QQ 微信 陌陌 钉钉	2. 淘宝 京东 并夕夕 国美 苏宁易购 唯品会	3. 美团 饿了么 百度外卖	4. 原神 扫雷 慕课网 leetcode
  • 计算机中的对象
计算机中的对象是在内存中的一块存储空间,属性和方法都是该内存中的数据学生对象:现实中:	学生名字:小明	学生年龄:18	学生的性别:男	学生的学号:123	学习的方法python:	name = '小明'	age = 18	gender = 'male'	id = 123		def learn():		print('小明爱学习')图书管理系统:现实:	书架、书、图书管理员计算机:	管理员对象、用户对象、数据库对象、图书对象
  • 小结
面向对象的思想,为生活,编程提供了优质的解题思路		可以简化流程,让复杂的需求更加容易实现面向对象的特点:	1. 各司其职	2. 弱耦合性:		强耦合:对象之间关系紧密		弱耦合:对象之间关系松散		面向对象中,对象之间的耦合关系尽量弱化。	3. 可重用性:		一处实现,处处使用		框架:Spring、Scrapy、Requests	4. 可扩展性:		在原有的功能上,增加额外功能		手机:大哥大+BB机--->小灵通(和弦铃声)--->iphone3彩色大屏触屏---iphone4 3G		AI人工智能芯片、AIN摄、全面屏、OLED、屏下指纹、面部识别、虹膜识别.....

1. 类是对象一个共性的抽象2. 是客观对象在人类脑中的主观反应3. 类是一个对象的模板
  • 编写一个类
类 = 属性+方法语法:	关键字:class  定义一个类class 类名:   #首字母大写	属性	方法
  • 属性
1. 属性的分类		1. 类属性			1. 位置:直接定义在类中的属性			2. 类创建的所有对象都有这些属性,并且属性值相同			3. 类属性属于类			4. 类属性一旦发生变化,则所有的对象也跟着变化				牵一发而动全身			5. 可以直接通过,类名.新属性=新值 创建类属性			6. 类属性的作用范围:整个类				根据当前类生成的所有对象		2. 实例属性			1. 属于实例对象的属性---称之为实例属性			2. 创建在方法内部的属性是实例属性					a:self.属性名=值					b:直接通过,实例对象.新属性名=新值			3. 实例属性属于实例对象,其他人不能使用			4. 实例属性改变,不会影响其他实例对象,更不会影响类			5. 实例属性如果要使用,必须创建实例对象			6. 如果实例属性和类属性发生命名冲突,在当前实例对象的范围内,覆盖类属性			7. 实例属性的作用范围:当前的实例对象2. 实例:	通过类创建的对象称为实例
  • 小结
1. 实例属性:	各个实例各自拥有,相互之间不影响,也不会影响类2. 类属性:	全类共有,有且只有一份,属于类的属性,类属性更改,则影响所有的实例对象。

  • 方法
1. 结构		1. 方法的声明			def 方法名(self):				内容		2. 方法的实现:			内容		3. 返回值:和函数一样2. 方法的使用		通过.的方式3. 通过实例对象调用方法		自动传递self参数4. 方法的使用,必须创建实例对象		有个别情况,比如一个方法是类方法5. 方法如果需要传递多个参数,则用逗号隔开		函数中的参数类别,在方法中依然适用
  • self
1. self指代当前的实例对象(类)2. 在通过实例对象调用方法时,python会自动的将当前的对象传递给self		谁是当前对象:谁调用该方法,谁就是当前对象3. self参数的目的:区分不同的实例对象4. self仅仅是一个普通的变量而已5. 自动传入当前对象,默认传递给第一个参数	习惯上,第一个参数,写为self
  • 构造方法
1. __init__(self)	初始化方法2. 创建实例的时候,自动调用,不需要手动调用3. 创建对象的时候,需要:类名(构造方法的参数)4. init方法常常用于,在创建对象时初始化实例属性	init方法就是私人订制5. 一个类中,如果没有构造方法,在创建对象的时候,会调用父类的构造方法	如果有构造方法,则调用该类的构造方法	如果没有,从父类中调用6. 构造方法的返回值,必须是None
class 用户:    def __init__(self,name,number):        self.name = name        self.number = numberclass 通讯录:    def __init__(self):        self.users = []            def add_user(user):        self.users.append(user)        t = 通讯录()t.add_user(用户('胡承龙','1333333333'))

你可能感兴趣的:(实习,python)