一、面向对象简介
1、基础概念
对象编程——Object Oriented Programming,简称OOP,是一种程序设计思想。OOP把对象
作为程序的基本单元,一个对象包含了数据和操作数据的函数。
面向过程的程序设计把计算机程序视为一系列的命令集合,即一组函数的顺序执行。为了简
化程序设计,面向过程把函数继续切分为子函数,即把大块函数通过切割成小块函数来降低系统的
复杂度。
在Python中,所有数据类型都可以视为对象,当然也可以自定义对象。自定义的对象数据类型
就是面向对象中的类(Class)的概念。
1.1、对象
对象,是一个抽象概念,表示任意存在的事物,通常将对象划分为两个部分,即静态部分与动态部
分。静态部分被称为“属性”,任何对象都具备自身属性,这些属性不仅是客观存在的,而且是不能
被忽视的,如人的性别。动态部分是对象的行为,即对象执行的动作,如人的行走。
简单地说,对象其实就是类的实例化结果。
1.2、类
类是封装对象的属性和行为的载体,反过来说,具有相同属相和行为的一类实体被称为类,在
Python中,类是一种抽象概念,它是无法直接使用,必须将它实例化成一个对象以后,基于这个对
象才能使用。
1.3 、实例化
将一个抽象的类具体化到某一个具体的对象,这个过程实例化
补充:所有的对象,都是由类生成的,类具有的方法,其所有生成的对象都会具有
2、面向对象编程的特点
-
一切皆为对象,如列表、字典、字符串、元组等
-
例如:列表就是一个对象,列表中的每个元素也都是对象
-
python就是一堆对象集合
-
-
每个对象都是实例化的结果
-
每一类对象都具有自己特定的属性和方法
# 列表是一个类
# 创建一个列表对象【类的实例化】
li1 = [1,2,3]
# 列表类的方法
li.pop()
li.append()
# 字符串是一个类
# 创建字符串对象
str1 = "123"
3、面向对象简单实现
3.1 定义类的格式
# 定义经典类
class 类名():
属性
方法
# 定义新式类
class 类名(父类名):
属性
方法
补充说明:
-
函数名:第二个单词首字母大写
-
类名:每个单词首字母大写
案例:
# 定义一个类
class StuInfo():
# 定义属性
age = "10"
name = "tom"
# 定义方法
def showInfo(self): # 类中的方法的第一个形参必须是self
print("%s的年龄是%s"%(self.name, self.age)) # 加上self是去类内部找变量
# 进行实例化,将实例化结果赋值给stu1变量
# stu1是一个对象
stu1 = StuInfo()
# 显示类属性
print(stu1.age)
print(stu1.name)
# 调用类方法
stu1.showInfo()
案例:给类添加属性
# 定义一个类
class Car():
# 定义一个属性
speed = "30"
# 定义一个方法
def Run(self):
print("品牌是%s, 车型是%s,汽车在行驶,速度是%s "%(myCar.carPai, myCar.carType, self.speed))
# 将类实例化成对象,将对象赋值给myCar
myCar = Car()
# 修改类中的属性
myCar.speed = "80"
# 给类添加属性
myCar.carType = "SUV"
myCar.carPai = "领克"
# 调用类方法
myCar.Run()
案例:类多次实例化的问题
# 定义一个类
class Car():
carType = "SUV"
carPai = "领克"
# 定义一个方法
def Run(self):
print("品牌是%s, 车型是%s,汽车在行驶"%(self.carPai, self.carType))
# 将类实例化成对象,将对象赋值给myCar
myCar = Car()
# 给类添加属性
myCar.carType = "SUV"
myCar.carPai = "领克"
# 调用类方法
myCar.Run(