13 面向对象
什么是面向过程和面向对象?
C——函数实现的,面向函数的语言。
编程语言历史:二进制——> 汇编(面向机器编程)——> C——> C++ ——>JAVA ——>python——> PHP
面向对象本质分类处理
13.1 对象和类
类
分类 class——抽象个概念;一类事务的总称用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。
对象
类的实例——对象是类的实例;通过类定义的数据结构实例。对象包括两个数据成员(类变量和实例变量)和方法。
定义类:
类命名的规范:首字母要大写,下划线 user_name ,大驼峰法 UserName
#创建user类
#class user: #旧式类
#class user(object): #新式类
class User(object):
#重写__init__(self) 用来初始化属性,在构建方法的时候,
# 这个方法会自动被触发
def __init__(self, name, age, gender, tel):
# print("这个方法被触发了")
# self.name = "张三"
# self.age = 18
# self.gender = "男"
# self.tel = "13124565543"
self.name = name
self.age = age
self.gender = gender
self.tel = tel
def study(self):
print("我爱学习!!!!")
print("我是"+self.name+",我爱学习")
def __str__(self):
return "[name= "+self.name+",age="+str(self.age)+"]"
if __name__ == '__main__':
# print("即将触发")
# u = User()
# print("触发结束")
# print(u.name)
# print(u.age)
# #直接修改属性值
# u.age += 1
# print(u.age)
# #调用方法
# u.study()
u = User("张三", 18, "男", "110")
print(u)
u.study()
1.定义一个圆类(Circle),求圆的面积和周长
class Circle(object):
def __init__(self,r):
self.r=r
def area(self):
return 3.14*self.r*self.r
def perimeter(self):
return 2*3.14*self.r
# def __str__(self):
# return 'area='+self.area()+',perimeter='+self.perimeter()
if __name__ == '__main__':
c=Circle(4)
print('r=',4)
print('area=',c.area())
print('perimeter=',c.perimeter())