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

    -------------最惨的破产就是丧失自己的热情。
    # ---------------------------------------------------------------------------------#
    day 016
    '''
    本节主要内容:
    1. 类的成员
    2. 类的成员-变量
    3. 类的成员-方法
    4. 类的成员-属性

    '''


    # 实例方法针对的是实例,
    # 类方法针对的是类,
    # 他们都可以继承和重新定义,而静态方法则不能继承,可以认为是全局函数。

    #
    # class People:
    # dream = 'learn_python'
    # def __init__(self,name,age,borg):
    # self.name =name
    # self.age = age
    # self.borg = borg
    #
    # kk = People("卡卡",18,"boy")
    # kk.dream = "learn_java"
    # print(kk.name)
    # print(kk.borg)
    # print(kk.dream)
    #
    # JJ = People("静静",25,"girl")
    # print(JJ.name)
    # print(JJ.borg)
    # print(JJ.dream)


    # class Huiji:
    #
    # def swimming(self):
    # print("My 灰机 会 swimming")
    #
    # def playball(self):
    # print("My 灰机 会 playball")
    #
    # QQ = Huiji()
    #
    # QQ.swimming()
    # QQ.playball()


    # class Pig:
    # def fly(self):
    # print("MY de pig can 飞")
    #
    # @classmethod
    # def flyandjianshen(cls):
    # print("MY de ping can jianshen")
    #
    #
    #
    # print(Pig)
    # Pig.fly()
    #
    # iG =Pig
    # iG.fly()
    # iG.flyandjianshen()


    # class shengxiao:
    # def __init__(self, price, weight,danjia):
    # self.price = price
    # self.weight = weight
    # self.danjia = danjia
    #
    # @property
    # def getzongjia(self):
    # return self.danjia * self.weight
    #
    # chouniu = shengxiao("cn",'3500','300','55')
    # print(chouniu.getzongjia)


    # ---------------------------------------------------------------------------------
    # 1. 简述面向对象三大特性并用示例解释说明?【背写】
    # 封装 : 对属性和方法的封装,以便随时调用
    # eg:
    # 继承 : 子类除了本身以外还可以使用父类的方法和
    # eg:
    # 多态 : 鸭子模型,同一个对象拥有多种形态
    # eg:
    # ---------------------------------------------------------------------------------#
    # 2. 面向中的变量分为哪几种?并用示例说明区别?【背写】
    # 1. 实例变量 .说白了,就是每个实例变量都应该拥有的变量.比如,人的名字,人的爱好
    # ,每个人的个人信息都属于实例变量..给对象用的 .

    # 2. 类变量(静态变量) 直接写在类中的变量就是类变量,需要用类名来访问,可以改变.
    # ,多个对象共享的.

    # ---------------------------------------------------------------------------------#
    # 3. 面向对象中方法有哪几种?并用示例说明区别?【背写】
    # 1. 类方法 类名.方法 调用
    # 2. 实例方法 对象.方法 调用
    # 3. 静态方法 类名.方法 调用
    # ---------------------------------------------------------------------------------#
    # 4. 面向对象中的属性有什么?并用示例说明?
    # 1. 第一种 是 把 方法 转换成属性
    # 2. 对象.属性
    # ---------------------------------------------------------------------------------#
    # 5. 简述静态方法和类方法的区别?
    # 静态方法 : 不用传递参数,没有继承
    # 类方法 : 需要传递参数,可以继承; 访问类方法,默认传递的是类

    # ---------------------------------------------------------------------------------#
    # 6. 面向对象的方法中那个无需传参数?
    # 静态方法

    # ---------------------------------------------------------------------------------#
    # 7. 面向对象中公有和私有成员,在编写和调用有哪些不同?
    # 一个使用 __xx__ 两端使用__
    # 私有使用 __xx 左端使用
    # ---------------------------------------------------------------------------------#
    # 8. 看代码写结果:【禁止运行】
    # class Foo:
    # a1 = 11
    # a2 = 12
    #
    # def __init__(self):
    # self.a1 = 1
    #
    #
    # obj = Foo()
    # print(obj.a1)
    # print(obj.a2)


    # --> 1 / 12


    # ---------------------------------------------------------------------------------#
    # 9. 看代码写每个打印结果:【禁止运行,如果报错可认为程序会继续向后执⾏】
    # class Foo(object):
    # a1 = 11
    #
    # def __init__(self, num):
    # self.a2 = num
    #
    # obj = Foo(999)
    # print(obj.a2) # 999
    # print(obj.a1) # 11
    #
    # print(Foo.a1) # 11
    # print(Foo.a2) # Error

    # ---------------------------------------------------------------------------------#
    # 10. 看代码写每⼀一个打印结果:【禁⽌止运⾏行行,如果报错可认为程序会继续向后执⾏行行】
    # class Foo(object):
    # a1 = 1
    # __a2 =2
    # def __init__(self,num):
    # self.num = num
    # self.__salary =1000
    #
    # def get_data(self):
    # print(self.num+self.a1)
    #
    # obj = Foo(666)
    #
    # print(obj.num) #666
    # print(obj.a1) #1
    # print(obj.__salary) # 私有不可访问
    # print(obj.__a2) # 私有不可访问
    # print(Foo.a1) # 1
    # print(Foo.__a2) # 私有不可访问

    # ---------------------------------------------------------------------------------#
    # 11. 看代码写每⼀一个打印结果:【禁⽌止运⾏行行,如果报错可认为程序会继续向后执⾏行行】行】
    # class Foo(object):
    # a1 = 1
    # __a2 = 2
    #
    # def __init__(self, num):
    # self.num = num
    # self.__salary = 1000
    #
    # def get_data(self):
    # print(self.num + self.a1)
    #
    # obj1 = Foo(666)
    # obj2 = Foo(999)
    # print(obj1.num) # 666
    # print(obj2.a1) # 1
    #
    # obj1.num = 18
    # obj1.a1 = 99
    #
    # print(obj1.num) #18
    # print(obj1.a1) #99
    #
    # print(obj2.a1) # 1
    # print(obj2.num+Foo.a1) # 1000
    # print(obj2.num+obj1.a1) # 999+99-->1098

    # ---------------------------------------------------------------------------------#
    # 12. 看代码写每⼀一个打印结果:【禁⽌止运⾏行行,如果报错可认为程序会继续向后执⾏行行】行】
    # class Foo(object):
    # hobby = "大保健"
    #
    # def __init__(self,num):
    # self.num = num
    # self.__salary =1000
    #
    # def f1(self):
    # print(Foo.hobby)
    #
    # @staticmethod
    # def f2():
    # print(Foo.hobby)
    #
    # @classmethod
    # def f3(cls):
    # print(cls.hobby)

    # 请将以上方法补全并调用执行.
    #需求: f1,实例方法 f2,静态方法 f3,类方法
    # ---------------------------------------------------------------------------------#
    #13.看代码写结果:[禁止运行,如果报错可认为程序会继续向后执行]
    # class Foo(object):
    #
    # @classmethod
    # def f3(cls):
    # print(cls)
    #
    # Foo.f3()
    #--> <class '__main__.Foo'>

    # ---------------------------------------------------------------------------------#
    # 14. 看代码写结果:【禁⽌yun行,如果报错可认为程序会继续向后执行】
    # class Foo(object):
    #
    # @classmethod
    # def f3(cls):
    # print(cls)
    #
    # obj = Foo
    # obj.f3()
    #--> <class '__main__.Foo'>

    # ---------------------------------------------------------------------------------#
    # 15. 看代码写结果:【禁⽌运行,如果报错可认为程序会继续向后执行】
    # class Foo(object):
    #
    # @classmethod
    # def f3(cls):
    # print(cls)
    #
    # def f2(self):
    # self.f3()
    # Foo.f3()
    #
    # obj = Foo()
    # obj.f2()
    #--> <class '__main__.Foo'> --> <class '__main__.Foo'>

    # ---------------------------------------------------------------------------------#
    # 16 看代码写结果:【禁⽌运行,如果报错可认为程序会继续向后执行】
    # class Base(object):
    #
    # @classmethod
    # def f3(cls):
    # print(cls)
    #
    # def f1(self):
    # print('base.f1')
    # self.f3()
    #
    # class Foo(Base):
    #
    # def f2(self):
    # print('foo.f2')
    # self.f1()
    #
    # obj = Foo()
    # obj.f2()

    #--> foo.f2 -->base.f1 --> <class '__main__.Foo'>

    # ---------------------------------------------------------------------------------#
    # 17. 请编在写一个私有的静态⽅方法,并通过代码证明私有方法不能再外部方法但可以在内部访问。

    # class Animal:
    # def __init__(self,name,age):
    # self.name = name
    # self.age = age
    #
    # def gun(self,c,d):
    # print(c,d)
    #
    # def __eat(self,a,b):
    # print(a,b)
    #
    # panda =Animal("胖达",'18')
    # panda.name()
    # panda.age()
    # panda.gun(8,9)
    # panda.__eat(7,6) #--> 不可访问

    # ---------------------------------------------------------------------------------#
    # 18. 现有500W条数据.请使用面向对象的思维来完成这500W条数据的分页工作(升级题)
    class Page:
    def __init__(self,lst,pagesize):
    self.lst =lst
    self.pagesize = pagesize

    def start(self,a):
    return a

    def end(self,b): #[返回最后一页]
    return b
    def index(self,x): #[返回指定页面]
    return x

    ye = input("输入要查询的数据的页码-->")

    # ---------------------------------------------------------------------------------#
    # 19. 在昨天最后一题的基础上.把数据写入到文件中.并且注册的时候需要到文件中判断是否重
    # 复.如果重复提示不能注册.(升级题)





    '''
    本节主要内容:
    1. 类的成员
    2. 类的成员-变量
    3. 类的成员-方法
    4. 类的成员-属性

    '''


    # 实例方法针对的是实例,
    # 类方法针对的是类,
    # 他们都可以继承和重新定义,而静态方法则不能继承,可以认为是全局函数。

    #
    # class People:
    # dream = 'learn_python'
    # def __init__(self,name,age,borg):
    # self.name =name
    # self.age = age
    # self.borg = borg
    #
    # kk = People("卡卡",18,"boy")
    # kk.dream = "learn_java"
    # print(kk.name)
    # print(kk.borg)
    # print(kk.dream)
    #
    # JJ = People("静静",25,"girl")
    # print(JJ.name)
    # print(JJ.borg)
    # print(JJ.dream)


    # class Huiji:
    #
    # def swimming(self):
    # print("My 灰机 会 swimming")
    #
    # def playball(self):
    # print("My 灰机 会 playball")
    #
    # QQ = Huiji()
    #
    # QQ.swimming()
    # QQ.playball()


    # class Pig:
    # def fly(self):
    # print("MY de pig can 飞")
    #
    # @classmethod
    # def flyandjianshen(cls):
    # print("MY de ping can jianshen")
    #
    #
    #
    # print(Pig)
    # Pig.fly()
    #
    # iG =Pig
    # iG.fly()
    # iG.flyandjianshen()


    # class shengxiao:
    # def __init__(self, price, weight,danjia):
    # self.price = price
    # self.weight = weight
    # self.danjia = danjia
    #
    # @property
    # def getzongjia(self):
    # return self.danjia * self.weight
    #
    # chouniu = shengxiao("cn",'3500','300','55')
    # print(chouniu.getzongjia)


    # ---------------------------------------------------------------------------------
    # 1. 简述面向对象三大特性并用示例解释说明?【背写】
    # 封装 : 对属性和方法的封装,以便随时调用
    # eg:
    # 继承 : 子类除了本身以外还可以使用父类的方法和
    # eg:
    # 多态 : 鸭子模型,同一个对象拥有多种形态
    # eg:
    # ---------------------------------------------------------------------------------#
    # 2. 面向中的变量分为哪几种?并用示例说明区别?【背写】
    # 1. 实例变量 .说白了,就是每个实例变量都应该拥有的变量.比如,人的名字,人的爱好
    # ,每个人的个人信息都属于实例变量..给对象用的 .

    # 2. 类变量(静态变量) 直接写在类中的变量就是类变量,需要用类名来访问,可以改变.
    # ,多个对象共享的.

    # ---------------------------------------------------------------------------------#
    # 3. 面向对象中方法有哪几种?并用示例说明区别?【背写】
    # 1. 类方法 类名.方法 调用
    # 2. 实例方法 对象.方法 调用
    # 3. 静态方法 类名.方法 调用
    # ---------------------------------------------------------------------------------#
    # 4. 面向对象中的属性有什么?并用示例说明?
    # 1. 第一种 是 把 方法 转换成属性
    # 2. 对象.属性
    # ---------------------------------------------------------------------------------#
    # 5. 简述静态方法和类方法的区别?
    # 静态方法 : 不用传递参数,没有继承
    # 类方法 : 需要传递参数,可以继承; 访问类方法,默认传递的是类

    # ---------------------------------------------------------------------------------#
    # 6. 面向对象的方法中那个无需传参数?
    # 静态方法

    # ---------------------------------------------------------------------------------#
    # 7. 面向对象中公有和私有成员,在编写和调用有哪些不同?
    # 一个使用 __xx__ 两端使用__
    # 私有使用 __xx 左端使用
    # ---------------------------------------------------------------------------------#
    # 8. 看代码写结果:【禁止运行】
    # class Foo:
    # a1 = 11
    # a2 = 12
    #
    # def __init__(self):
    # self.a1 = 1
    #
    #
    # obj = Foo()
    # print(obj.a1)
    # print(obj.a2)


    # --> 1 / 12


    # ---------------------------------------------------------------------------------#
    # 9. 看代码写每个打印结果:【禁止运行,如果报错可认为程序会继续向后执⾏】
    # class Foo(object):
    # a1 = 11
    #
    # def __init__(self, num):
    # self.a2 = num
    #
    # obj = Foo(999)
    # print(obj.a2) # 999
    # print(obj.a1) # 11
    #
    # print(Foo.a1) # 11
    # print(Foo.a2) # Error

    # ---------------------------------------------------------------------------------#
    # 10. 看代码写每⼀一个打印结果:【禁⽌止运⾏行行,如果报错可认为程序会继续向后执⾏行行】
    # class Foo(object):
    # a1 = 1
    # __a2 =2
    # def __init__(self,num):
    # self.num = num
    # self.__salary =1000
    #
    # def get_data(self):
    # print(self.num+self.a1)
    #
    # obj = Foo(666)
    #
    # print(obj.num) #666
    # print(obj.a1) #1
    # print(obj.__salary) # 私有不可访问
    # print(obj.__a2) # 私有不可访问
    # print(Foo.a1) # 1
    # print(Foo.__a2) # 私有不可访问

    # ---------------------------------------------------------------------------------#
    # 11. 看代码写每⼀一个打印结果:【禁⽌止运⾏行行,如果报错可认为程序会继续向后执⾏行行】行】
    # class Foo(object):
    # a1 = 1
    # __a2 = 2
    #
    # def __init__(self, num):
    # self.num = num
    # self.__salary = 1000
    #
    # def get_data(self):
    # print(self.num + self.a1)
    #
    # obj1 = Foo(666)
    # obj2 = Foo(999)
    # print(obj1.num) # 666
    # print(obj2.a1) # 1
    #
    # obj1.num = 18
    # obj1.a1 = 99
    #
    # print(obj1.num) #18
    # print(obj1.a1) #99
    #
    # print(obj2.a1) # 1
    # print(obj2.num+Foo.a1) # 1000
    # print(obj2.num+obj1.a1) # 999+99-->1098

    # ---------------------------------------------------------------------------------#
    # 12. 看代码写每⼀一个打印结果:【禁⽌止运⾏行行,如果报错可认为程序会继续向后执⾏行行】行】
    # class Foo(object):
    # hobby = "大保健"
    #
    # def __init__(self,num):
    # self.num = num
    # self.__salary =1000
    #
    # def f1(self):
    # print(Foo.hobby)
    #
    # @staticmethod
    # def f2():
    # print(Foo.hobby)
    #
    # @classmethod
    # def f3(cls):
    # print(cls.hobby)

    # 请将以上方法补全并调用执行.
    #需求: f1,实例方法 f2,静态方法 f3,类方法
    # ---------------------------------------------------------------------------------#
    #13.看代码写结果:[禁止运行,如果报错可认为程序会继续向后执行]
    # class Foo(object):
    #
    # @classmethod
    # def f3(cls):
    # print(cls)
    #
    # Foo.f3()
    #--> <class '__main__.Foo'>

    # ---------------------------------------------------------------------------------#
    # 14. 看代码写结果:【禁⽌yun行,如果报错可认为程序会继续向后执行】
    # class Foo(object):
    #
    # @classmethod
    # def f3(cls):
    # print(cls)
    #
    # obj = Foo
    # obj.f3()
    #--> <class '__main__.Foo'>

    # ---------------------------------------------------------------------------------#
    # 15. 看代码写结果:【禁⽌运行,如果报错可认为程序会继续向后执行】
    # class Foo(object):
    #
    # @classmethod
    # def f3(cls):
    # print(cls)
    #
    # def f2(self):
    # self.f3()
    # Foo.f3()
    #
    # obj = Foo()
    # obj.f2()
    #--> <class '__main__.Foo'> --> <class '__main__.Foo'>

    # ---------------------------------------------------------------------------------#
    # 16 看代码写结果:【禁⽌运行,如果报错可认为程序会继续向后执行】
    # class Base(object):
    #
    # @classmethod
    # def f3(cls):
    # print(cls)
    #
    # def f1(self):
    # print('base.f1')
    # self.f3()
    #
    # class Foo(Base):
    #
    # def f2(self):
    # print('foo.f2')
    # self.f1()
    #
    # obj = Foo()
    # obj.f2()

    #--> foo.f2 -->base.f1 --> <class '__main__.Foo'>

    # ---------------------------------------------------------------------------------#
    # 17. 请编在写一个私有的静态⽅方法,并通过代码证明私有方法不能再外部方法但可以在内部访问。

    # class Animal:
    # def __init__(self,name,age):
    # self.name = name
    # self.age = age
    #
    # def gun(self,c,d):
    # print(c,d)
    #
    # def __eat(self,a,b):
    # print(a,b)
    #
    # panda =Animal("胖达",'18')
    # panda.name()
    # panda.age()
    # panda.gun(8,9)
    # panda.__eat(7,6) #--> 不可访问

    # ---------------------------------------------------------------------------------#
    # 18. 现有500W条数据.请使用面向对象的思维来完成这500W条数据的分页工作(升级题)
    class Page:
    def __init__(self,lst,pagesize):
    self.lst =lst
    self.pagesize = pagesize

    def start(self,a):
    return a

    def end(self,b): #[返回最后一页]
    return b
    def index(self,x): #[返回指定页面]
    return x

    ye = input("输入要查询的数据的页码-->")

    # ---------------------------------------------------------------------------------#
    # 19. 在昨天最后一题的基础上.把数据写入到文件中.并且注册的时候需要到文件中判断是否重
    # 复.如果重复提示不能注册.(升级题)











































  • 相关阅读:
    UVA 10618 Tango Tango Insurrection
    UVA 10118 Free Candies
    HDU 1024 Max Sum Plus Plus
    POJ 1984 Navigation Nightmare
    CODEVS 3546 矩阵链乘法
    UVA 1625 Color Length
    UVA 1347 Tour
    UVA 437 The Tower of Babylon
    UVA 1622 Robot
    UVA127-"Accordian" Patience(模拟)
  • 原文地址:https://www.cnblogs.com/dealdwong2018/p/9926526.html
Copyright © 2011-2022 走看看