面向对象(OOP:Oriented Object Programming):
面向对象的编程
1、什么是面向对象?
面向对象是一种新的编程思维, 模仿人对于真实世界的认知的行为和过程, 面向对象就是分类的编程思想
2、先了解什么是面向过程?
C语言的解决问题的方案:
面向过程(函数)的编程语言大型软件
3、类和对象
类:事物的类别,类是一个抽象,是人认知一类事物的统称
对象:事物的一个实在的案例,实例,对象是一个真实存在的事物,是类中的一个案例
python如何定义类
class关键字
class 类名称(object):
def __init__(self):
# 初始化属性
通过方法来描述行为动作
创建对象:
如java中:
类型 变量名称 = new 构造函数();
User ljh = new User();
python中:
变量名称 = 调用初始化函数()
u1 = User();
class User(object):
def __init__(self):
self.name = "hejiashuang"
self.age = "22"
self.school = "xauat"
#使用函数来完成类的一个行为动作
def speak(self):
print('----------------')
print(f'I am {self.name}\nmy age is {self.age}\nI am studying in {self.school}')
print('----------------')
if __name__ == '__main__':
#创建对象
u1 = User()
#调用动作
u1.speak()
#修改类的内容
u1.name = "yqzh"
u1.speak()
注意:在python2及以前的版本中,定义类有两种:
旧式类:
class 类名称:
表示该类没有父类
新式类:
class 类名称(父类)
表示存在父类
注意:从python3开始没有旧式类,如果在python3中,定义,不管有没有写继承关系,都是存在继承
class 类名称: # 因为没有指定继承关系,所有默认继承所有类的父类——object
class 类名称(object): # 直接指定了继承的父类就是object
import math
class Cir(object):
def __init__(self,radius):
self.radius = radius
def get_area(self):
return math.pi * self.radius * self.radius
def get_cir(self):
return math.pi * self.radius
class Triangle(object):
def __init__(self,x,y,z):
self.x = x
self.y = y
self.z = z
def get_area(self):
return self.x + self.y +self.z
C1 = Cir(2)
print(C1.get_cir())
T1 = Triangle(3,4,5)
print(T1.get_area())