OOAD期末复习

1. Encapsulation 封装
  1. 在程序设计中,封装(Encapsulation)是对具体对象的一种抽象,即将某些部分隐藏起来,在程序外部看不到,其含义是其他程序无法调用;将类或者是函数中的某些属性限制在某个区域之内,外部无法调用
  2. 类包含了数据与方法,将数据和方法放在一个类中就构成了封装
  3. 封装的好处:
    • 保护隐私(把不想别人知道的东西封装起来)
    • 隔离复杂度
2.Information hiding 信息隐藏
  1. 定义:信息隐藏隐藏对象或函数的详细信息的过程。隐藏这些细节会导致抽象,从而降低外部复杂性并使对象或函数更易于使用
  2. 如何实现:在设计和确定模块时,使得一个模块内包含的特定信息(过程或数据),对于不需要这些信息的其他模块来说,是不可访问的。
3.Inheritance 继承
  1. 继承是新建类的一种方式,新建的类被称为子类或者派生类,被继承的类被称为父类或者基类
  2. 子类可以使用父类的属性和方法;类解决了对象与对象之间代码冗余的问题;继承解决了类与类之间代码冗余的问题
  3. 继承的分类:
  • 经典类:没有继承object类的子子孙孙类的都属于经典类

  • 新式类:继承了object类的子子孙孙类的都属于新式类

  • 在python2中才有经典类和新式类之分,在python3中都是新式类

  • class Person():
        def __init__(self,firstname,lastname) -> None:
            self.firstname = firstname
            self.lastname = lastname
        def printname(self):
            print(self.firstname,self.lastname)
    
    class Student(Person):
        pass
    
    s1 = Student('liu','amber')
    s1.printname()
    
    liu amber
    
  • class Person():
        def __init__(self,firstname,lastname) -> None:
            self.firstname = firstname
            self.lastname = lastname
    
        def printname(self):
            print(self.firstname)
    
    class Student(Person):
        def __init__(self, firstname) -> None:
            self.firstname = firstname
            print('my name is',firstname)
        def printname(self):
            return super().printname()
    
    s1 = Student('liu')
    s1.printname()
    
    my name is liu
    liu
    
  • 多重继承容易导致钻石继承(菱形继承)问题

4.attibubte vs. property
  1. 定义setter(),getter()来操作属性

    1. class Student():
          def __init__(self,age):
              self._age = age
              
          def getage(self):
              return self._age
          
          def setage(self,age):
              self._age = age
              
      s = Student(
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值