zoukankan      html  css  js  c++  java
  • day 17 面向对象-成员

    Day17面向对象-成员

    变量
    1.成员变量(实例变量)(字段column)
    2.类变量(静态变量)直接写在类中的,共享出去的
    方法
    1.成员(实例)方法,加了self的调用的时候.必须用对象去访问
    2.类方法.当方法需要传递类名的时候,需要类方法.规范规则:在上方加@classmethod
    3.静态方法,当你的方法不需要传递当前类的对象的时候.语法规则:在上方加@staticmethod
    属性
    用方法来描述我们的属性信息
    注意:
    1.@property 改变一个方法成为属性
    2.这个方法只能有一个参数
    3.必须有返回值

    私有
    只能在自己的类中访问
    __方法
    __变量
    __类变量

    #变量
    class Person:
        country="中国"   #类变量.不属于对象.对象可以访问
        def __init__(self,name,num,gender,birthday):
            #成员变量(实例变量)
            self.name=name
            self.num=num
            self.gender=gender
            self.birthday=birthday

        #对象来访问(成员方法)   (实例方法)
        def marry(self,duifang):
            print("人会结婚%s" % duifang)

    alex=Person("李杰",10086,"男","昨天")
    alex.country="澳大利亚"   #这里和变量没有关系,alex单独加了一个属性叫country="澳大利亚
    wusir=Person("吴佩琪",10010,"女","今天")

    print(alex.country)   #澳大利亚#拿到的是自己
    print(wusir.country)  #中国
    print(Person.country)  #中国

    # 总结:类变量,用类名去操作.

    # 方法
    class Person:
        def __init__(self):
            pass
        #实例方法需要传递类的对象   self
        def think(self):
            print("人能思考")
        #静态方法不需要传递对象或者类
        @staticmethod#静态方法
        def jisuan(a,b):
            print("我来过这里")
            return a+b


        #类方法:第一个参数传递的是类名
        @classmethod
        def clsMethod(cls):
            p=cls()
            print("我是一个类方法",p)
    p=Person()
    p.think()

    Person.think(p)
    # 静态方法的调用
    # 类名访问
    # 静态的内容也用类名访问


    # 属性
    class Person:
        def __init__(self,name,num,gender,birthday):
            self.name=name
            self.num=num
            self.gender=gender
            self.birthday=birthday
        @property
        def age(self):   #方法只有一个参数,self
            return 10  #必须有返回值
    p=Person("alex","10086","不详","1894943")
    print(p.age)

    # 私有
    class Tiger:
        def __init__(self,name,waibiao,qingzheng,qingfu,money,fangchan):
            self.name=name
            self.waibiao=waibiao
            self.qingzheng=qingzheng
            self.__qingfu=qingfu
            self.__money=money
            self.__fangchan=fangchan
        def buy(self):
            print("我有%s" % self.__money)
            self.__sel()
        def __sel(self):
            print("我要卖掉%s" % self.__fangchan)
    lh=Tiger("alex","正直","刚正","小潘潘",10000000,5)
    lh.buy()


    # 成员:
    class Person:
        def __init__(self,name,num,gender,birthday):
            self.name=name
            self.num=num
        #对象来访问(成员方法)(实例方法)
        # 成员:在类中定义的变量和方法都被称为成员

     

  • 相关阅读:
    Fractions Again?! UVA
    Maximum Product UVA
    Investigating Div-Sum Property UVA
    Period UVALive
    Numbers That Count POJ
    Orders POJ
    小明的数列
    Spreading the Wealth uva 11300
    Play on Words UVA
    第二百七十天 how can I 坚持
  • 原文地址:https://www.cnblogs.com/litieshuai/p/9715205.html
Copyright © 2011-2022 走看看