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

    1.简述面向对象三大特性并用示列解释说明
    封装:把具有相同属性和功能的内容封装在一个对象中

    继承:子类可以自动拥有父类中除了私有属性外的其他所有内容

    多态:同一个对象.可以拥有多种形态.python原生自带多态性

    2.面向变量分为哪几种?并用示列说明区别?

    成员变量:(实例变量)(字段column) (重点)
    def __init__(self):
    self.属性
    类变量:(静态变量) 直接写在类中的. 共享出去的.
    class 类:
    变量

    3.面向对象中方法有哪几种?并用示咧说明区别?

    成员(实例)方法: 加了self的.调用的时候。必须用对象去访问.(重点)
    class computer:
    def play(self):
    print("我的电脑可以玩会")
    类方法,: 当方法需要传递类名的时候.需要类方法.规范规则: 在上方加 @ classmethod
    class computer:
    def play(self):
    print('我的电脑可以玩会')

    @staticmethod
    def fare():
    print('我的电脑非常牛逼,可以煎鸡蛋')
    @classmethod
    def cal(cls,a,b):
    print(cls)
    return a+b
    print(computer.cal(1,2))#此时会自动把类名传递给类方法的第一个参数
    静态方法,: 当你的方法不需要传递当前类的对象的时候。 语法规则: 在方法上面加 @ staticmethod
    @staticmethod
    def fare():
    print("我的电脑非常牛逼,可以煎鸡蛋")
    4.面向对象的属性有什么?并用示列说明?
    方法伪装成一个属性,代码上没有什么提升,只是更合理.




    5.简述静态方法和类方法的区别
    类方法, 当方法需要传递类名的时候.需要类方法.规范规则: 在上方加 @ classmethod
    class computer:
    def play(self):
    print('我的电脑可以玩会')

    @staticmethod
    def fare():
    print('我的电脑非常牛逼,可以煎鸡蛋')
    @classmethod
    def cal(cls,a,b):
    print(cls)
    return a+b
    print(computer.cal(1,2))
    静态方法, 当你的方法不需要传递当前类的对象的时候。 语法规则: 在方法上面加 @ staticmethod
    class computer:
    def play(self):
    print('我的电脑可以玩会')

    @staticmethod
    def fare():
    print('我的电脑非常牛逼,可以煎鸡蛋')

    @classmethod
    def cal(cls, a, b):
    print(cls)
    return a + b

    print(computer.cal(1, 2))
    6.面向对象的方法中那个无需传参数
    静态方法不需要传参数

    7.面向对象中公有和私有成员,在编写和调用时有哪些不同?
    公有是公开的 所有人可见
    私有是私人的只有自己可见其他人看不到
    # 8.看代码写结果;禁止运行
    class Foo(object):
    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)
    print(obj.a1)

    print(Foo.a1)
    print(Foo.a2)

    结果为999 11 11 none
    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)
    print(obj.a1)
    print(obj.__salary)
    print(obj.__a2)
    print(obj.a1)
    print(Foo.__a2)


    结果 666 1 none none 1 none

    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)
    print(obj1.a1)

    obj1.num = 18
    obj1.a1 = 99

    print(obj1.num)
    print(obj1.a1)

    print(obj2.a1)
    print(obj2.num + Foo.a1)
    print(obj2.num + obj1.a1)


    结果为 666.1 18 99 1 1000 1098

    12.看代码写结果:[禁止运行,如果报错可认为程序会继续执行]
    class Foo(object):
    hobby = "大保健"
    def __init__(self,num):
    self.num = num
    self.__salary = 1000

    def f1():
    print(Foo.hobby)
    def f2():
    print(Foo.hobby)

    @classmethod
    def f3():
    print(cls.hobby)
    13.看代码写结果:
    class Foo(object):
    @classmethod
    def f3(cls):
    print(cls)
    Foo.f3()

    结果<class '__main__.Foo'>


    14.看代码写结果
    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.请编写一个静态方法,并通过代码证明私有方法不能再外部访问但可以在内部访问


    18.
  • 相关阅读:
    字节跳动总监知乎5716赞的Java开发笔记
    刚面完阿里Java高级岗40K的offer,这些技术你必须要掌握!
    HDOJ 1253 胜利大逃亡(bfs)
    swjtu 1962 A+B(模拟)
    swjtu 2213 A Game About Cards(模拟题)
    HDU 1544 Palindromes(回文子串)
    第八章 异常控制流
    第四讲 深入介绍信号与槽
    第三讲 对话框的创建
    第二讲 窗口部件的布局与通信
  • 原文地址:https://www.cnblogs.com/liurenli/p/9710037.html
Copyright © 2011-2022 走看看