zoukankan      html  css  js  c++  java
  • 面向对象-01

    class Laogou:
    def __init__(self, name):
    # 特殊方法,如果遇到 类名(),该方法就会自动执行.其中的self参数实际上是类的对象obj,系统会自动给你传进去,所以不用管.该方法目的是进行数据初始化
    self.n1 = name # 把传进的参数赋值给n1


    # 其中__init__方法相当于是把数据打包放进obj对象中,这样当你需要调用时可以直接在obj中找,又因为obj就是self,因此也可以说是直接去self中找就行.

    obj = Laogou('老狗') # 出现 类名(),__init__函数会自动执行,则'老狗'就会被当做参数传进去赋值给n1

    '''面向对象什么时候写?如何写?
    方式一: 归类+提取公共值 (归类:例如把人归为一类,狗归为一类,也即有多种共同属性的某一事物. 公共值:该类所有成员都会有的属性,如人类会说话,狗
    会叫,则可以把说话作为一项属性提取出来作为人这一类的共同属性,把狗叫这一项属性提取出来作为狗这一类的共同属性.
    方式二: 在指定类中编写和当前代码相关的所有代码+提取公共值
    '''

    '''面向对象的三大特性: 封装/继承/多态
    封装:
    将相关功能封装到一个类中:
    class Message:
    def email(self):pass
    def msg(self):pass
    def wechat(self):pass
    将发送文件,接收文件,读取文件等功能都放在Message的类中.
    将数据封装在一个对象中(需借用构造方法):
    class Person:
    def __init__(self, name, age, gender):
    self.name = name
    self.age = age
    self.gender = gender
    obj = Person('孙福来', 18, '女')
    '''

    '''
    继承:
    class Base: # 父类,基类
    def f1:pass
    class Foo(Base): #子类,派生类
    def f2:pass
    原则:先在自己的类中找,没有再去父类中找相关方法或属性

    为什么要有继承:主要是为了方法的复用,提高代码的重用性.当有两个类都有一个相同的方法时,就可以把这个方法单独的拿出来,放进一个新类中,再让这两个类都继承该类即可.
    方法一:
    class Foo:
    def f1(self):pass

    def f2(self):pass

    class Bar:
    def f1(self):pass

    def f3(self):pass
    方法二:
    class Base:
    def f1(self):pass

    class Foo(Base):
    def f2(self):pass

    class Bar(Base):
    def f3(self):pass
    方法二把Foo与Bar类中拥有的共同方法f1,单独拿出来放进了一个类,然后再让Foo与Bar继承该类,实现了方法的复用.

    多继承:在python中可以实现一个子类继承多个父类,查找时也是先从离自己最近的父类找起(从左向右,左边的父类更亲)

    '''

    '''
    多态:

    '''

  • 相关阅读:
    PHP使用引用变量foreach时,切记其他循环不要使用同一个名字的变量
    PHP 获取给定时间的周日时间或月末时间或每天
    MySQL Load Data InFile 文件内容导入数据库和 Into OutFile导出数据到文件
    直接拿来用!最火的iOS开源项目(一)
    12个有趣的C语言问答
    Flex,Flash,AS3,AIR的关系和区别
    Stage3D大冒险
    c/c++程序中内存区划分
    IOS—— strong weak retain assign 学习
    如何提高你的移动开发中AS3/AIR性能
  • 原文地址:https://www.cnblogs.com/gongteng/p/13543474.html
Copyright © 2011-2022 走看看