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

    一、面向对象的程序设计(OOD)
    二、面向对象的编程(OOP)
    三、类
    四、对象/实例
    五、名称空间

    一、面向对象的程序设计(OOD)

    1. 面向对象的程序设计相当于面向过程的程序设计而言,解决了程序的扩展性。
    2. 通过抽象对象的特征和技能定义一个类,其中,特征和技能对应对象的数据属性和方法属性。

    二、面向对象的编程(OOP)

    1. 首先,定义类
    2. 然后,根据类实例化出对象
    #定义类:
    class Student:
        country = 'China'
        def __init__(self, ID, name, sex, PROVINCE):
            self.id = ID
            self.name = name
            self.sex = sex
            self.province = PROVINCE
        def choice_course(self):
    			pass
    #实例化:
    s = Student('2013157','Lily','female','Shanghai')
    

    三、类

    1.python类的介绍

    python3中,所有的类都是新式类,默认继承object

    #python3中
    class A(object): #新式类
        pass
    
    class B: #新式类
        pass
    

    python2中,分为经典类和新式类,新式类需要在定义类时声明继承object,没有继承声明继承object的类属于经典类

    #python2中
    class A(object): #新式类
        pass
        
    class B: #经典类
        pass
    

    2.类的属性:

    类的属性包括:变量和函数,统称为类的属性。

    3.类的用法:属性引用和实例化

    属性引用,类名.属性
    相当于变量引用和函数引用

    #属性引用
    Student.name #引用类下的变量
    Student.choice_course() #引用类下的函数t
    
    #属性修改
    Student.name = 'Alex'
    
    #属性增加,类中没有此属性,就会增加age属性
    Student.age = '19'
    
    #属性删除
    del Student.sex
    

    注:类的建立表示产生一个类的名称空间,在名称空间中可以定义变量或者函数(相当于定义了一堆名字,名字会指向一个具体的内存地址)
    查看类的名称空间:类名.dict_
    属性引用中的操作本质就是在操作__dict_

    类变量和函数是类与对象共有的属性,类的变量通常定义为不可变类型

    实例化,类名(参数)
    相当于调用类的__init__函数,将对象传给__init__方法中的self,其他参数按序传递

    #实例化:
    s = Student('2013157','Lily','female','Shanghai') #将s传给__init__(self, ID, name, sex, PROVINCE)中的self
    

    注:实例化一个对象,相当于产生一个名称空间,对象的名称空间中只有变量
    查看对象的名称空间:对象._dict_

    四、对象/实例

    类的实例产生对象,对象只有数据属性
    类的函数会唯一绑定到一个实例化的对象,每个对象的绑定方法的内存地址都不一样

    #绑定方法:
    s.choice_course() #将s传给choice_course(self)中的self
    

    五、名称空间

    名称空间包括:类的名称空间、对象的名称空间

    • 类创建的同时就会产生类的名称空间,名称空间存储类的属性(变量和函数)
    • 对象创建的同时就会产生对象的名称空间,名称空间存储对象的属性(变量)
    • 对象寻找属性时,会先从自己名称空间寻找,找不到去类中寻找,找不到去父类中寻找,找不到报异常
  • 相关阅读:
    安装sqlserver后 服务启动过几秒就自动停止
    MVC使用基架添加控制器出现的错误:无法检索XXX的元数据
    HTML:模拟链接被按下,在新标签页打开页面,不使用window.open(可能被拦截)
    解决 NDP40-KB2468871不能安装
    十进制转二进制and位运算符
    行万里路
    grunt使用小记之uglify:最全的uglify使用DEMO
    grunt使用小记之开篇:grunt概述
    HTTP权威指南阅读笔记五:Web服务器
    ActionScript 3.0入门:Hello World、文件读写、数据存储(SharedObject)、与JS互调
  • 原文地址:https://www.cnblogs.com/sunqim16/p/6791435.html
Copyright © 2011-2022 走看看