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

    面向对象

    什么是面向对象:

    面向对象是一门编程思想

    面向过程思想

    核心是“过程”二字,过程指的是解决问题的步骤,先做什么再做什么

    基于该编程思想编写程序,如流水线,一种机械式的思维

    优点:

    将复杂的问题流程化,进而简单化

    缺点:

    牵一发而动全身,程序的可扩展性差

    如:面向过程的编程思想就是函数的使用,这句话不对

    ps: 编程思想是一门思想,与任何的技术无关

    面向对象的编程思想:

    注意:

    核心是“对象二字”,对象指的是“特征与技能”的结合体

    基于该编程思想编写程序,要有一种“上帝式”的思维方式

    优点:

    可扩展性高

    缺点:

    编写程序的复杂程度比面向过程高

    如何产生对象:

    1)什么是类:

    类指的是类型,类别

    用两种角度去看待:

    ​ 现实社会种:

    ​ 先有一个个的对象,经过社会的文明发展,随之总结出类

    ​ 在程序中:

    ​ 必须先有类,再通过“调用类,产生对象”

    对象指的是“特征与技能”的结合体,类指的是一系列“对象之间相同的特征与技能”的结合体
    对象是实际存在的,而类抽象产生的

    2)如何定义类:

    如何写类并产生对象:

    先从现实世界中通果一个个对象总结出类

    然后再定义类,后调用类产生对象

    3)定义类语法:

    class 关键字:帮你产生类的

    class类的名字:

    ​ 对象之间相同的特征

    ​ 对象之间相同的技能

    定义类名的规范:

    ​ 驼峰命名法

    class Student:
        # 类名指向的是类的内存地址
        school = 'oldboy'  # 类中特征也称之为‘属性’ attribute
    
        def func(self):  # 在类内部定义函数,会默认有一个参数self 此时可以当作形参
            print('1111')
    
    
    # 查看类的名称空间
    print(Student)
    print(Student.__dict__['func'](1))
    print(Student.__dict__['school'])
    print(Student.__dict__)
    
    # 类还提供了一种特殊获取名字的方式”类名.名字“的方式
    # 可以增删改查
    
    

    函数的名称空间:

    ​ 在调用函数时产生,函数调用结束后销毁

    类的名称空间:

    ​ 在定义阶段时产生,会将类中所有的名字,扔进类的名称空间中

    对象的产生:

    调用类即产生对象

    类名+()调用类产生对象

    类的名称空间在定义时产生,对象的名称空间在调用类时产生

    调用类产生对象的过程成为类的实例化,对象则成为类的实例

    对象调用方法时:会将对象作为第一个参数传入方法中

    由对象来调用类内部的函数,称之为对象的绑定方法

    ​ 绑定方法的特别之处:会将对象当做第一个参数传给该方法

    给对象添加新的属性:

    def__init__(self,name,sex,age):
        self.name = name
        self.sex = sex
        self.age = age
        
    

    想要在调用类时,为对象传入独有的特征

    调用类时:会将对象当作第一个参数,与括号内所有的参数一并传给__ init __()

    stu1 = Student('tank','male',17)
    name -->tank , sex-->male, age--17
    

    ps: 凡是在类内部定义的,__ 开头或者 __结尾的方法都有特殊的意义

    在类内部定义的方法,在调用类时触发,会自动将对象本身当做第一个参数自动传入,与括号内所有的参数一并传给__ init __()

    对象名字的查找顺序:

    1.对象.属性,会先找对象自己的。

    2.若对象没有,会去找类的。

    3.若类没有,则会报错。

    总结

    调用类产生对象发生的事情:

    1.会产生一个空对象的名称空间

    2.会自动触发__ init __,并且会将对象当作第一个参数传入

    3.会将调用类括号内的参数一并传给__ init __()

    类中的方法是给函数对象使用的

    对象绑定方法的特殊之处是:

    1.会将对象当作第一个参数传入

    2.若对象的绑定方法还有其他参数,会一并传入

  • 相关阅读:
    Git的安装与配置
    JDBCTemplate
    消费金融大数据风控架构
    架构设计之道
    面向服务架构SOA
    java集合List解析
    web应用安全
    微服务的交互模式
    服务化管理和治理框架的技术选型
    分库分表就能无限扩容么?
  • 原文地址:https://www.cnblogs.com/godlover/p/11928250.html
Copyright © 2011-2022 走看看