1.面向对象与面向过程的区别
参考链接:https://blog.csdn.net/jerry11112/article/details/79027834
面向对象就是高度实物抽象化;面向过程就是自顶向下的编程!
2.面向对象与面向过程的优缺点
面向过程:
优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机、嵌入式开发、 Linux/Unix等一般采用面向过程开发,性能是最重要的因素。
缺点:没有面向对象易维护、易复用、易扩展
面向对象:
优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统 更加灵活、更加易于维护
缺点:性能比面向过程低
3.面向对象两个核心概念
类:是一群具有相同特征或形为的事物的一个统称,类是抽象的,不能直接使用
对象:由类创造出来的具体存在
4.类和对象的关系
类是模板,对象是根据这个模板创建出来的;
类只需要有一个,对象可以有多个。比如:一张图纸可以造多个飞机;
类:属性(特征)和方法(行为)
5.类的三要素
1.类名 :这类事物的名字,满足大驼峰命名法,例如:StudentInfomation
2.属性:这个类创建出的对象有什么特征
3.方法:这个类创建出的对象有什么行为
补充:大驼峰命名法和小驼峰命名法
https://blog.csdn.net/jerry11112/article/details/84985026
6.__init__函数 与 __str__函数
__init__函数:初始化对象
__str__函数: 规范化输出
7.面向对象的三大特征
1.封装:根据职责将属性和方法封装到一个抽象的类中,定义类的准则
2.继承:实现代码的重用,相同的代码不需要重复的编写
3.多态:不同的子类,对象调用相同的方法,产生不同的执行结果
8.Python类的实例方法、静态方法和类方法
(1).基本定义
实例方法:
第一个参数需要是self,它表示一个具体的实例本身。
静态方法:
需要使用 @staticmethod 装饰
可以无视这个self,即没有参数要求,而将这个方法当成一个普通的函数使用。
类方法:
需要使用 @classmethod 装饰
第一个参数需要是cls,它表示这个类本身。
(2).使用场景
只访问成员变量的⽅法,定义成实例⽅法;
只访问类变量的⽅法,定义类⽅法;
既访问成员变量,也访问类变量的⽅法,定义成实例⽅法;
既不访问成员变量,也不访问类变量,定义成静态⽅法;
(3).方法的调用
1.静态方法,可以被类或类的实例对象所调用;
在静态方法中调用静态方法: 类名.静态方法名
在类方法中,调用静态方法: cls.静态方法名
2.类方法,可以被类或类的实例对象所调用;
3.实例方法,只能被实例对象直接调用,如果想使用类名调用,则需要手动给self参数传值;
总结:实例方法只能被实例对象调用,而静态方法、类方法可以被类或类的实例对象调用。
备注:什么是 成员变量? 什么是 类变量?
我的理解:成员变量 就是 实例属性,而 类变量 就是 类属性