对应GitHub代码地址:https://github.com/fengfanli/studyPython
对应的包是: study05_OOP上
面向过程:就是我们一开始学习的,按照解决问题的步骤去写代码 【根据业务逻辑去写代码】
在思考问题的时候, 首先分析’怎么按照步骤去实现’ 然后将问题解决拆解成若干个步骤,并将这些步骤对应成方法一步一步的 最终完成功能
面向对象:关注的是设计思维【找洗车店 给钱洗车】
出差–北京
小明-- 什么时间 - -买什么票【高铁 汽车 飞机】—酒店—回程时间
亲力亲为的去做 【面向过程】
面向过程不足:小明没有更多的精力去考虑别的事情
boss— 秘书【小明需要考虑的事情】----财务----目的:北京 【面向对象】
boss有更多的精力去处理其他的时候,创造更多的价值
从计算机的角度来看:面向过程不适合做大项目
而面向对象合适做更大项目的设计
面向对象
:按人们认识客观世界的系统思维方式,采用基于对象(实体) 的概念建立模型,模拟客观世界分析、设 计、实现软件的办法。
面向对象编程
(Object Oriented Programming-OOP)是一种解决软件复用的设计和编程方法。这种方法把软件系统中相近相似的操作逻辑和操作 应用数据、状态,以类的形式描述出来,以对象实例的形式在软件系统中复用,以达到提高软件开发效率的作用。
类是具有一组 相同或者相似 特征【属性】和行为【方法】的 一系列[多个]对象组合
类就是一个模板,模板里可以包含多个函数,函数里实现一些功能
类的组成部分
类(Class)由3个部分构成
类的名称: 类名
类的属性: 一组数据
类的方法: 允许对进行操作的方法 (行为)
现实世界 计算机世界
行为---------> 方法
特征---------->属性
对象则是根据模板创建的实例,通过实例对象可以执行类中的函数
对象是实实在在的一个东西,类的实例化,具象化
类是对象的抽象化 而对象是类的一个实例
实例方法
:在类的内部,使用def 关键字来定义 第一个参数默认是 self【名字标识可以是其他的名字,但是这个位置必须被占用】
实例方法是归于 类的实例所有
属性
:包括 类属性
实例属性
两种。
属性 是 类里面定义的变量
在类的内部定义的变量【类属性
】
在方法内部定义的【通过类似于self.变量名】 变量,是 实例属性`
self和对象指向同一个内存地址,可以认为 self 就是对象的引用。, java 中有this, python 有self;
不同的是:python 类中方法 的第一个参数 为self, java 中类的方法不需要传 this参数。
在python中,有一些内置好的特定的方法,方法名是“xxx”,在进行特定的操作时会自动被调用,这些方法称之为魔法方法。
初始化一个类,在创建实例对象为其赋值时使用
。创建并返回一个实例对象,调用了一次,就会得到一个对象
。对象在程序运行结束后进行对象销毁的时候调用这个方法,来释放资源
。总结 init 方法
类就是一个模板,模板里可以包含多个函数,函数里实现一些功能;
对象则是根据模板创建的实例,通过实例对象可以执行类中的函数。
使用 class 语句来创建一个新类,class 之后为类的名称并以冒号结尾;
实例化类其他编程语言中一般用关键字 new,但是在 Python 中并没有这个关键字,类的实例化类似函数调用方式。
在类的内部,使用 def 关键字可以定义一个实例方法;
定义在类里面,方法外面的属性称之为类属性,定义在方法里面使用self引用的属性称之为实例属性。
构造初始化函数,在创建实例对象为其赋值时使用。
self和对象指向同一个内存地址,self就是对象的引用。
在python中,有一些内置好的特定的方法;
方法名是“xxx”;
在进行特定的操作时会自动被调用。
1、什么是类,什么是对象
类就是一个模板,模板里可以包含多个函数,函数里实现一些功能。 对象则是根据模板创建的实例,通过实例对象可以执行类中的函数
2、python中定义一个类的语法格式是什么
3、类(class)由哪三个部分构成
类三要素:类名、属性、方法
4、init方法有什么作用,如何定义
是一个初始化的方法 用来定义实例属性 和初始化数据的,在创建对象的时候自动调用 不用手动去调用
init(self)
5、方法中的"self"代表什么。
对象的引用
6、在类中定义init方法的时候第一个形参必须是self吗?self可以用其他东西代替吗?
不必须,可以使用其他名称代替,前提必须符合命名规则
7、Python面向对象中的魔法方法,是如何定义的,魔法方法需要开发人员去调用吗?
python内置的函数,类似于__str__(self),不需要调用,python自动调用
8、str方法可以没有返回值,这句话是否正确?
有返回值,不正确
9、查看下面代码,请写出有那些是属性,那些是实例方法。
class Person(object):
foot = 2
eye = 2
mouth = 1
def __init__(self,name,age):
self.name = name
self.age = age
print("self=%s" % id(self))
def run(self):
print('飞快跑')
def eat(self):
print('吃饭')
xiaoming = Person('小明', 18)
print("xiaoming=%s" % id(xiaoming))