21、面向对象
面向对象
类和对象
-
面向过程和面向对象的编程
- 面向过程的编程:函数式编程,C程序等
- 面向对象的编程:C++,Java,Python等
-
类和对象:是面向对象中的两个重要概念
- 类:是对事物的抽象,比如:汽车模型
- 对象:是类的一个实例,比如:QQ轿车,大客车
-
范例说明
- 汽车模型可以对汽车的特征和行为进行抽象,然后可以实例化一台真实的汽车实体出来
Python类定义
-
Python类的定义
- 使用class关键字定义一个类,并且类名的首字母要大写
- 当程序员需要创建的类型不能用简单类型表示时就需要创建类
- 类把需要的变量和函数组合在一起,这种包含也称之为“封装”
-
Python类的结构
class 类名:
成员变量
成员函数class MyClass():
first = 123
def fun(self):
print "I am function" -
对象的创建
- 创建对象的过程称之为实例化;当一个对象被创建后,包含三个方面的特性:对象的句柄、属性和方法。
-
句柄用于区分不同的对象
-
对象的属性和方法与类中的成员变量和成员函数对应
if name == "main":
myClass = MyClass() #创建类的一个实例
-
- 创建对象的过程称之为实例化;当一个对象被创建后,包含三个方面的特性:对象的句柄、属性和方法。
-
构造函数__init__
class Person:
def init(self, name, lang, website):
self.name = name
self.lang = lang
self.website = website -
self是一个很神奇的参数
- self指向类的一个实例,当实例调用方法时,self就指向这个调用的方法的实例
-
子类、父类和继承
抽象形状类
class Shape:
# 类的属性
edge = 0
# 构造函数
def init(self, edge):
self.edge = edge
# 类的方法
def getEdge(self):
return self.edge
# 抽象方法
def getArea(self):
pass三角形类,继承抽象形状类
class Triangle(Shape):
width = 0
height = 0
# 构造函数
def init(self, width, height):
#调用父类构造函数
Shape.init(self, 3)
self.width = width
self.height = height
#重写方法
def getArea(self):
return self.width * self.height / 2四边形类,继承抽象形状类
class Rectangle(Shape):
width = 0
height = 0
# 构造函数
def init(self, width, height):
#调用父类构造函数
Shape.init(self, 4)
self.width = width
self.height = height
#重写方法
def getArea(self):
return self.width * self.heighttriangle = Triangle(4,5);
print triangle.getEdge()
print triangle.getArea()rectangle = Rectangle(4,5);
print rectangle.getEdge()
print rectangle.getArea() -
python支持多继承,但不推荐使用

浙公网安备 33010602011771号