zoukankan      html  css  js  c++  java
  • 面向对象知识总结

    面向过程: 强调的是步骤、过程、每一步都是自己亲自去实现的。

    这种解决问题的思路我们就叫做面向过程。

    面向对象:当遇到某个需求的时候不用自己去实现,应该找一个专门做这个事的人来做。

    这种解决问题的思路我们叫做面向对象。

    三大特征: 继承、封装、多态

    1.对象: 万物皆对象

      a 看的见摸得着实实在在存在的  比如:埃菲尔铁塔

      b 看不见,摸不着的, 但是存在   比如: 会议

    2. 对象: 属性和方法

      属性:静态不会改变的

      方法:会动的, 动作

    例:张三同学 属性:姓名,性别,年龄,身份证号,体重,联系方式,籍贯,名族,身高,住址, 班级,学号,爱好
    方法:学习,娱乐,吃饭,睡觉,厕所,喝水
    泰迪:属性:名字,性别,体重,毛色,住址,品种,年龄,身高
    方法:娱乐,叫,吃,喝,吐舌头,厕所
    笔记本:属性:品牌,型号,配置,出厂日期,重量,寿命,尺寸,价格,颜色
    方法:代码,娱乐,办公,学习

    3.类: 对象中公共的属性和方法,类是抽象的概念,仅仅是模板,如:人,模子,月饼

      对象是一个你能看到的, 摸得着的具体实体 (根据模子造出,各种属饼)

    4.类图: class Person(object):#大驼峰  #继承  

            #属性
           name=None
           sex=none
           age=0

           #方法      

           def show(self):    
             print('名字%s 性别%s 年龄%d'%(self.name,self.sex,self.age))

           #创建实例对象
            zsf=person()
            zsf.name='张三'
           #添加属性
            zsf.hobby='唱歌'
            zsf.age=100
            zsf.sex=‘男’
            zsf.show()
            print(zsf.hobby)

    5. 构造函数:完成初始化(给属性赋值)可以使用默认值def__init__(self,age=18)年龄的默认值为18  

    def __init__(self,n1,n2):
    self.s1=n1
    self.s2=n2
    把之前的多行代码完成初始化,用1行代码代替

    6.self:代表当前类

    class Person(object):
    def show(self):#self代表person
    pass

    7.封装:例如(电视机,电脑,冰箱)防止不合法数据输出;保护数据
    1.私有属性(只有自己所用属性前加俩下划线,__+属性,私有后无法访问)
    2.共有属性(所有人共同使用的)类和子类都可以用,任何人都能用,当前类可以用
    赋值用set,获取值用get
    3.protect受保护的 前加一个下划线(_+属性) 

    class Person(object):
         __name=None
         __sex=None
         __age=0
         def setNmae(self,name):
            if ......
               self.__name=name
            else:
               self.__name='aaa'
         def getNmae(self,name):
             return self.__name
     ss=Person()
     ss.setName('dd')
     print('名字:%s'%(ss.getName(),..))

    8.1.继承:把相同的代码放到父类中,继承来源于生活,比如:孩子继承父母长相,孩子继承遗产
    继承涉及到父类(超类super,基类base)和子类(派生类,扩展类)
    2.啥时候用:子类与父类是is a 关系(企鹅是一只鸟:企鹅is a 鸟)
    3.继承怎么用:创建父类
    class +父类名(object):
      公共属性
      公共方法
      创建子类
    class +子类名(父类名):
      自己特有的属性
      自己特有的方法

    4.在哪里用:a:is a关系
    b:多个类中出现多个相同的属性和方法,把相同的属性和方法放到父类中,子类中留下 自己特有的
    5.子类调用父类的属性和方法:super().属性或super()方法

    9.多态:同一个动作有不同的人在做

    class Pet(object):                 #定义一个父类
        def zoo(self):                 #构造同一个方法
            print('小张家喂养了狗和猫')
    class Dog(Pet):
        def zoo(self):
            print('狗在啃骨头')
    class Cat(Pet):
        def zoo(self):
            print('猫在吃鱼')
    class Poeple(object):
        def feed(self,Pet):
            print('小张在喂养宠物')
            Pet.zoo()                #最后返回这个动作
    xz=Poeple()
    cat=Cat()
    xz.feed(cat)
    dog=Dog()
    xz.feed(dog)

    一.1.单继承:继承具有传递性(单继承)
    多继承:可以继承父子类(class+类名(类1,类2))
    2.@property私有公用,使得用法跟调用属性一样;@属性+setter赋值方法

    3.对象可以有自己的属性:li=Student()
      li.hobby='羽毛球'
      print(li.hobby)
    4.构造函数可以使用默认值:
      class People(object):
        def __init__(self,name,age=10)
          self.name=name
          self.age=age
      zs=People('张三') #默认年龄为10
    5.类中属性:公共的:name
    私有的:__age 俩个下划线
    受保护的:_money # 一个下划线
    6.继承具有传递性:class A(object):
              pass
             class B(A):
              pass
               class C(B):
              pass
            c1=C() #对象c1可以调用父类中A的公共属性和方法
    super().__init__(父类的属性)
    注意:继承分为单继承和双继承,继承只能继承公共属性和方法
    7.property:set,get方法的使用像属性一样简单

  • 相关阅读:
    用的fileupload组件实现的大文件上传
    手机刷机
    Bonferroni correction
    FTP 常用命令
    Oracle 10 参数配置说明
    Solaris 10 ftp,telnet,ssh,sendmail
    solaris10下安装oracle10g
    solaris10中安装oracle内核参数的调整
    matlab从txt/csv文件中读取一行
    SUN服务器Solaris10安装步骤
  • 原文地址:https://www.cnblogs.com/haozong/p/11237934.html
Copyright © 2011-2022 走看看