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

    面向对象

    类和对象

    • 面向过程和面向对象的编程

      • 面向过程的编程:函数式编程,C程序等
      • 面向对象的编程:C++,Java,Python等
    • 类和对象:是面向对象中的两个重要概念

      • 类:是对事物的抽象,比如:汽车模型
      • 对象:是类的一个实例,比如:QQ轿车,大客车
    • 范例说明

      • 汽车模型可以对汽车的特征和行为进行抽象,然后可以实例化一台真实的汽车实体出来

    Python类定义

    • Python类的定义

      • 使用class关键字定义一个类,并且类名的首字母要大写
      • 当程序员需要创建的类型不能用简单类型表示时就需要创建类
      • 类把需要的变量和函数组合在一起,这种包含也称之为“封装”
    • Python类的结构

        class 类名:
            成员变量
            成员函数
      
        class MyClass():
            first = 123
            def fun(self):
                print "I am function"    
      
    • 对象的创建

      • 创建对象的过程称之为实例化;当一个对象被创建后,包含三个方面的特性:对象的句柄、属性和方法。
        • 句柄用于区分不同的对象

        • 对象的属性和方法与类中的成员变量和成员函数对应

            if __name__ == "__main__":
                myClass = MyClass()     #创建类的一个实例
          
    • 构造函数__init__

        class Person:
            def __init__(self, name, lang, website):
                self.name = name
                self.lang = lang
                self.website = website
      
    • self是一个很神奇的参数

      • self指向类的一个实例,当实例调用方法时,self就指向这个调用的方法的实例
    • 子类、父类和继承

        # 抽象形状类
        class Shape:
            # 类的属性
            edge = 0
            # 构造函数
            def __init__(self, edge):
                self.edge = edge
            # 类的方法
            def getEdge(self):
                return self.edge
            # 抽象方法	
            def getArea(self):
                pass
      
        #三角形类,继承抽象形状类
        class Triangle(Shape):
            width = 0
            height = 0
            # 构造函数
            def __init__(self, width, height):
                #调用父类构造函数
                Shape.__init__(self, 3)
                self.width = width
                self.height = height
            #重写方法
            def getArea(self):
                return self.width * self.height / 2
      
        #四边形类,继承抽象形状类		
        class Rectangle(Shape):
            width = 0
            height = 0
            # 构造函数
            def __init__(self, width, height):
                #调用父类构造函数
                Shape.__init__(self, 4)
                self.width = width
                self.height = height
            #重写方法
            def getArea(self):
                return self.width * self.height
                
        triangle = Triangle(4,5);
        print triangle.getEdge()
        print triangle.getArea()
      
        rectangle = Rectangle(4,5);
        print rectangle.getEdge()
        print rectangle.getArea()
      
    • python支持多继承,但不推荐使用

  • 相关阅读:
    解决Linux 环境 GLIBCXX_3.4.15' not found问题
    同步和异步接口,你还有疑惑么?
    SQL中内连接和外连接的区别
    Linux常用操作指令(面试专用)
    关于支付类的一些测试关注点及异常点
    jenkins持续集成 python selenium(windows本地)
    从ghost映像.gho文件快速创建vmware虚拟机
    阿里p3c(代码规范,eclipse插件、模版,idea插件)
    logback错误日志发送邮件
    C#中的异步陷阱
  • 原文地址:https://www.cnblogs.com/zfc2201/p/8169012.html
Copyright © 2011-2022 走看看