美文网首页
12 OOP-面向对象编程

12 OOP-面向对象编程

作者: 十二右 | 来源:发表于2018-07-14 20:03 被阅读0次

    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-面向对象编程

          本文链接:https://www.haomeiwen.com/subject/voumyftx.html