zoukankan      html  css  js  c++  java
  • (七)面向对象基础(一)

    面向对象基础
    • 面向过程:根据业务逻辑从上到下写代码
    • 面向对象:将数据与函数绑定到一起,分类进行封装,每个程序员只要负责分配给自己的分类,这样能够更快速的开发程序,减少了重复代码
    • 面向对象基于面向过程
            面向对象(object-oriented ;简称: OO) 至今还没有统一的概念 我这里把它定义为: 按人们 认识客观世界的系统思维方式,采用基于对象(实体)的概念建立模型,模拟客观世界分析、设 计、实现软件的办法。
            面向对象编程(Object Oriented Programming-OOP) 是一种解决软件复用的设计和编程方法。 这种方法把软件系统中相近相似的操作逻辑和操作 应用数据、状态,以类的型式描述出来,以对象实例的形式在软件系统中复用,以达到提高软件开发效率的作用。
     
    对象是面向对象编程的核心,在使用对象的过程中,为了将具有共同特征和行为的一组对象抽象定义,提出了另外一个新的概念——类
       
      类的构成:类名、属性、方法
    • 类的名称:类名(安装大驼峰命名法)
    • 类的属性:一组数据
    • 类的方法:允许对进行操作的方法 (行为)   {附:方法与函数的区别:方法的第一个形参必须是self}
    一个类可以产生多个对象,对象间彼此独立,各自独立额度使用功能
     
    1、class Hero():    # 经典类
    
    2、class Hero(object):  # 新式类定义形式
        def info(self):
            print("英雄各有见,何必问出处。")
    # 查看类的文档说明,也就是类的注释
    print(Hero.__doc__)
     
    • 定义类时有2种形式:新式类和经典类(python3只有新式类)
    • object 是Python 里所有类的最顶级父类;
    • info 是一个实例方法,第一个参数一般是self,表示实例对象本身
    • 解释器会把调用方法的对象作为第一个实参来传递
     
    魔法方法
        在适当的事迹会自动运行的方法
        ①方法名两边各有两个下划线②名字都是由官方规定
        # Python 的类里提供的,两个下划线开始,两个下划线结束的方法,就是魔法方法
        # 如果类面没有写__init__方法,Python会自动创建,但是不执行任何操作,
        # 如果为了能够在完成自己想要的功能,可以自己定义__init__方法,
        # 所以一个类里无论自己是否编写__init__方法 一定有__init__方法。
    __init__(self)方法:
    作用:初始化对象的共有属性
    创建对象之后会自动自行,不需要手动调用
    __init__可以在self之后接收需要的参数(创建对象时传递的实参,回传递到方法的形参)
     
    __str__(self)方法: 附:括号里只能接收self形参
    作用:打印对象的描述信息
    打印对象时会自动执行
    __str__(self)方法必须要有返回值(return),且为字符串
     
    附:当使用print输出对象的时候,默认打印对象的内存地址。如果类定义了__str__(self)方法,那么就会打印从在这个方法中 return 的数据
     
    __del__(self)方法:
    作用:验证对象是否被销毁,释放资源
    当对象被销毁的时候执行
     
    __new__(cls)方法:
    作用:当创建对象时执行,用于控制当前类是否能创建新对象
    __new__至少要有一个参数cls,代表要实例化的类,此参数在实例化时由Python解释器自动提供
    要创建新对象,就需要调用object的__new__方法来处理
    创建的新对象必须要return返回
    创建对象的参数不仅会给__init__,也会传递给__new__方法
     
     
     
    {总结}
    • 类的外面最好时通过方法来访问属性,而不是直接访问
    • 私有属性:在属性名前写两个下划线,这个属性只能在定义的类使用
    • 类的里面可以访问私有属性,外面不能访问
    附:eval:可以把字符串当作代码来执行
           repr:可以获取到字符串的定义格式
           dir:能够查看一个对象的所有属性
  • 相关阅读:
    pongo英雄会-幸运数题解
    求最大公约数的算法
    第二课、GUI程序实例分析------------------狄泰软件学院
    第一课、GUI程序原理分析------------------狄泰软件学院
    第六十八课、拾遗:令人迷惑的写法
    第六十七课、经典问题解析五
    第六十六课、c++中的类型识别
    第六十五课、c++中的异常处理(下)
    第六十四课、c++中的异常处理(上)
    第六十三课、C语言的异常处理
  • 原文地址:https://www.cnblogs.com/qingchang/p/8976259.html
Copyright © 2011-2022 走看看