一、面对对象与过程编程简介
- 面向过程:实现功能时,自己亲自完成开发的全过程
- 面对对象的思想:找一个代替物去完成实现所需的功能
- 面向对象的三大特征有:封装性,继承性以及多态性
封装:将数据与具体操作实现的代码放在某个对象的内部,外部无法访问。必须要先调用类的方法才能启动。
继承:定义一个class的时候,一个新的类(class)成为子类,可以继承现有的类(父类)的变量和方法
多态:根据对象类型的不同以不同的方式进行处理
二、类和对象
- 类是永安里描述具有相通属性和方法对象的集合,对象为类(class)的具体实例。
类由类名、类的属性(以人为例,类的属性可以是身高,年龄,体重)以及类的方法(允许对类进行操作的方法)组成
记录学生信息的案例:
创建一个类,Student(注意类名的首字母要大写)
class Student:
number=0
#number属于类变量,放在函数外
def __init__(self,name,birthday): #构造函数
self.name=a #实例属性
self.birthday=b #name和birthday属于实例变量
def Age(self): #成员函数
self.age=2021-int(self.birthday[0:4])
def print(self):
print("该生的姓名为:",self.name)
print("该生的出生日期为:",self.birthday)
a=input("请输入姓名")
b=input("请输入出生日期")
s1=Student(a,b)
a1.Age()
s1.print()
- 类变量 (定义在类中,且在函数体之外),访问类变量的方式:类名.变量名或者self.class.变量名;
实例变量:定义在方法中的变量,访问的方式为对象名.变量名或者self.变量名
而面向过程不需定义类,直接写入函数即可,如下面的计算从num1到num2的总和
sum=0
def func(mun1,num2):
global sum #对sum进行处理,这样的sum进入函数以后出来的时候能保留原有值
for i in range(num1,num2):
sum+=i
print(sum)
func(3,50)