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











































  • 相关阅读:
    HttpWebRequest代理访问网站
    一段获得天气信息的.net代码
    C# 加密解密(DES,3DES,MD5,Base64) 类
    Windows 8 电话激活密钥。(更新至 20130721)
    微软官方的一段JavaScript判断.net环境
    我的第一篇。以后在这个记录我的点点滴滴。。。
    Linux 2.6内核中新的锁机制RCU
    再见,viewDidUnload方法
    Mechanical Sympathy
    Why should a selfimplemented getter retain and autorelease the returned object
  • 原文地址:https://www.cnblogs.com/dealdwong2018/p/9926526.html
Copyright © 2011-2022 走看看