zoukankan      html  css  js  c++  java
  • 面向对象 "一"

    1:面向对象不是所有情况都适用。
    
    2面向对象编程
    
    a:定义类
    
    calss Foo:                    注意顶一个类的时候首字母必须是大写
    
           def (方法一)(self,bb)
    
                   pass
    
    b:根据创建对象,创建和Foo实列的。
    
    使用对象去类中找方法。
    
    3:self,是一个形式参数,python内部传递的。
    
    4:类+括号就会自动执行类中的__init__方法:创建了一个对象在__init__方法中执行具体的封装操作。
    
    __init__:有一个特殊的名字:构造方法
    
    __del__:解释器销毁对象的时候会自动调用,特殊的名字:析构方法
    封装:
    
    使用场景:当同一类型的方法具有相同的参数时,直接封装到对象即可。
    
    使用场景:把类当做模板,创建多个对象(对象内封装的数据可以不一样)
    
    5:派生类可以继承基类中的所有功能。
    
    6:派生类和基类同时存在,优先找派生类。
    
    面向对象有三个特性:
    
                              封装 , 继承 , 多态。
    面向对象编程,类,def函数。          参考:
    class Oldboy:           定义类
        def fetch(self,backend):         
            print(backend) 
        def add_record(self,backend,record):
            pass
    #创建对象
    ret = Oldboy()
      
    
    ret.fetch("www.xxx.com") ret.add_record("www.xxx.com","www.ooo.com") #这个不执行 #输出结果 www.xxx.com



    class OldBoy:
        def __init__(self,bk):      #bk是形参,对应外部穿过来的实参
            '''
            构造方法
            :return: bk
            '''
            self.backend = bk       #self.backend = bk相当于在__init__中bk的参数
    
        def fetch(self):
            print('fetch中self的内存地址:',self)
            return self.backend     #backend用来接收init方法中bk的参数
    
        def add_record(self,record):
            print('add_record中self的内存地址:',self)
            return self.backend + record
    
    obj = OldBoy("www.oldboy.org")      #创建了一个对象obj,然后把www.oldboy.org封装到类中对应的形参bk
    # obj.backend = "www.oldboy.org"
    print('obj对象的内存地址:',obj)
    ret = obj.fetch()
    print(ret)
    
    obj2 = OldBoy(2)
    # obj2.backend = 2
    print('obj2对象的内存地址:',obj2)
    ret = obj2.add_record(3)
    print(ret)
    class Abcd:          #父类
        def chi(self):
            print(self,name +"" )
        def he(self):
            print(self,name + "")
    class Dog(Abcd):          #继承父类
        def __init__(self,name):
            sela.name = name
        def jiao(self):
            print(self.name + "")
    ret = Dog("小黑")
    ret.chi()
    ret.he()
    ret.jiao()
    
    #执行结果
    小黑 吃
    小黑 喝
    小黑 汪
    #多个继承
    class Abcd(object):
        def f1(self):
            print("Abcd")
    class A(Abcd):
        def f(self):
            print("A")
    class B(Abcd):
        def f1(self):
            print("B")
    class C(A):
        def f(self):
            print("C")
    class D(B):
        def f1(self):
            print("D")
    class E(C,D):
        def f(self):
            print("E")
    ret = E()
    ret.f1()
    
    
    #执行结果
    D

      

  • 相关阅读:
    xdoj1194----(bsgs-用数组实现链表 真的是好啊)
    hdoj-4417(做法二 树状数组离线解法,对所有的查询先保存进行排序后有序的查询) 好腻害!
    线段树专题2-(加强版线段树-可持续化线段树)主席树 orz! ------用于解决区间第k大的问题----xdoj-1216
    线段树专题1(用于解决区间问题)
    ccf-170902-公共钥匙盒(模拟)
    字典(NSDictionary)的使用
    ios 加载资源中的Html
    iOS 使用自定义手势屏蔽按钮解决方法/UITapGestureRecognizer屏蔽Button
    有时UIGestureRecognizer手势识别不出来问题分析及方案
    XCode的一些调试技巧
  • 原文地址:https://www.cnblogs.com/wuyongcong/p/5549658.html
Copyright © 2011-2022 走看看