oop(object-oriented programming):面向对象编程
编程思想:
1.面向过程编程:c(只有逻辑和过程)
a = 1
b = 2
print(a + b)
2.面向对象编程:java、c++、oc、python等(有类语法)-->(以对象为工具实现功能)
对象.sum(1, 2)
3.函数式编程:c、java、python(以函数为工具实现功能)
def sum(num1, num2):
return num1 + num2
sum(1, 2)
类:对具有相同属性和相同功能的对象的集合;是抽象的。
如果说人是一个类,某一个具体的人是对象
车是一个类,楼下停着的那辆红色的轿车就是一个对象
如果说电脑是一个类,我正在用的电脑是一个对象
对象:就是类的实例
1.声明类:
格式:
class 类名:
类的类容
calss:python中声明类的关键字
类名:标识符;1.首字母大写!!!;2.见名知义
冒号:固定格式,冒号后一个缩进的内容,就是类的内容
类的类容:
1.类变量:声明在类中,方法外的变量;要通过类去获取(通过类能够让其具体的属性)
2.对象属性;
3.方法(构造方法、对象方法、类方法、静态方法):声明在类中的函数就叫方法
声明一个人对应的类
class Person:
# count就是类变量(通过类去使用)
count = 61
构造方法init,名字固定;
通过类创建对象的时候,系统会自动的调用这个方法去初始化对象的属性
self:
1.类中所有的对象方法都会默认有一个self参数,
用来指向调用方法的对象(谁调用这个方法就指向谁)
2.调用代有self的方法,不需要给self传参,系统会自动将方法调用者传给它
3.对象方法必须使用对象去调用
def __init__(self):
# 我们一般在这个地方去声明对象的属性
# name、age、gender就是人这个类的对象的属性
self.name = ''
self.age =0
self.gender = '女'
# 所有的对象方法都有一个默认的产生self
def run(self):
print('跑起来')
a.使用类变量:通过 "类名.类变量" 的形式在类外去使用类变量
print(Person.count)
b.name、age、gender 都是对象属性,对象属性的使用:对象.属性名
# print(Person.name) # AttributeError: type object 'Person' has no attribute 'name'
c.对象方法run:对象方法只能通过对象去调用 -->对象.方法名(实参列表)
# run() # NameError: name 'run' is not defined
# Person.run() ## NameError: name 'run' is not defined
2.怎么声明对象:类名(参数)
通过类创建对象:会自动调用类的__init__方法去初始化对象的属性
参数有没有,有几个,就看__init__方法
p1 = Person('Jon-W') # 通过Person类,创建了一个对象p1
a.创建完对象后,就可以通过对象获取对象属性:对象.属性名
print(p1.name)
b.通过对象给属性赋值
p1.age = 10
print(p1.age)
通过对象去调用对象方法(也叫给对象发送消息)
p1.run()
c.一个类可以拥有多个对象
p3 = Person()
p2 = Person()
p2.name = 'LuoHao'
p2.age = 23
p2.gender = '男'
p2.run()
print(p2.name,p2.age,p2.gender)
print(p2.run())
网友评论