12 OOP-面向对象编程

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())

你可能感兴趣的:(12 OOP-面向对象编程)