Python进阶教程5——面向对象

一.什么是面向对象

对象:对象是现实世界或者思维世界中的实体在计算机中的反映,它将数据以及这些数据上的操作封装在一起。
相比较函数,面向对象是更大的封装,根据职责在一个对象中封装多个方法

  • 1.在完成某一个需求前,首先确定职责–要做的事(方法)
  • 2.根据职责确定不同的对象,在对象内部封装不同的方法(多个)
  • 3.最后完成代码,就是顺序的让不同的对象调用不同的方法
    特点:
  • 1.注重对象和职责,不同的对象承担不同的职责
  • 2.更加适合对复杂的需求变化,是专门应对复杂项目的开发,提供的固定套路
  • 3.需要在面向过程的基础上,再学习一些面向对象的语法

二.面向对象的两个基本概念

1.类的概念

类:是对一群具有相同特征或行为的事物的一个统称,是抽象的,不能直接使用
特征:被称为属性
行为:被称为方法
类 就相当于制造飞机时的图纸,是一个模板,是负责创建对象的

2.类的创建
  • 1.类名:满足这类事物的名字(大驼峰命名法)
    大驼峰命名法:
    1.每个单词的首字母大写
    2.单词与单词之间没有下划线
  • 2.属性:这个类创建出来的对象有什么样的特征
  • 3.方法:这个类创建出来的对象有什么样的行为

类名的确定:
名词提炼法:分析整个业务流程,出现的名词,通常就是找到的类名
定义一个只包含方法的类
class 类名:
def 方法1(self,参数列表):
pass
def 方法2(self,参数列表):
pass
方法的定义格式和函数的几乎一样
区别在于第一个参数必须是self

示例
Python进阶教程5——面向对象

3.对象的概念

对象:是由类创建出来的一个具体的存在,可以直接使用,对象是类具体化的产物,也就是实例化
由哪一个类创建出来的对象,就拥有哪一个类的定义的属性和方法
在程序开发中,应该先有类,再有对象
创建对象
当一个类定义完成之后,要使用这个类来创建对象
对象变量 = 类名()

示例
Python进阶教程5——面向对象
现在我们构造一个类,并且实例化
Python进阶教程5——面向对象

三.引用的概念

先来看一下python中对变量的解释
在python中,如果要使用一个变量,不需要提前进行声明,只需要在用的时候,给这个变量赋值即可 (这个和C语言等静态类型语言不同,和python为动态类型有关)。

类比到面向对象:例如上面的创建dog这个对象的时候‘dog = Animal()‘ Animal()就是对象,dog就是引用。
self:哪一个对象调用的方法,self就是哪一个对象的引用
在类封装的方法内部,self就表示当前调用方法的对象自己
Python进阶教程5——面向对象

四.内置的方法

  • 1 初始化方法

      类名() 就可以创建一个对象
      当使用类名()创建对象的时候,python解释器会自动执行以下操作
      1.为对象在内存中分配空间 —创建对象
      2.调用初始化方法
      在开发中,如果希望在创建对象的同时,就设置对象的属性,可以对_ init _方法进行改造
      1.把希望设置的属性值,定义成_ init _ 方法的参数
      2.在方法内部使用self.属性名 = 形参 接收外部传递的参数
      3.在创建对象时,使用类名(属性1,属性2..)调用
    

Python进阶教程5——面向对象
Python进阶教程5——面向对象

  • _ str _ 方法

      在python中,使用python输出对象变量,默认情况下,会输出这个变量引用的对象是由哪一个类创建的	对象,以及在内存中的地址(十六进制表示)
      希望使用print输出对象变量时,能够打印自定义的内容,就可以利用_ str_ 这个内置方法了 
    

Python进阶教程5——面向对象
Python进阶教程5——面向对象