1.哪些语言属于面向对象或者面向过程
1. 面向过程 - C语言
2. 面向对象 - python Java PHP C++ JS
2.面向对象的特点
封装 继承 多态
3.面向过程的特点
1.根据业务逻辑从上往下写代码
2.容易被初学者接收
4.OO, OOP, OOA,OOD的含义
OO=ObjectOriented = 面向对象
OOP=Programing = 面向对象编程
OOA=Analyse= 面向对象分析
OOD=Design = 面向对象设计
5.什么是类
1.具有相似内部状态和运动规律的实体结合
2.具有相同属性和行事物的统称
3.类 = 属性 +方法
6.什么是对象
所说所有的变量都是对象。 对象在python里,其实是一个指针,指向一个数据结构,数据结构里有属性,有方法。
对象通常就是指变量。从面向对象OO的概念来讲,对象是类的一个实例。在python里很简单,对象就是变量。
7.object的含义
object 是超级父类,超类,基类
所有类本质都来自于Object
8.声明类的关键字是哪个
class
9.self的含义
self:当前类对象
10.类和对象的关系
1.对象是类的实例
2.类是对象的模板(封装)
11.构造函数的特点以及函数名是什么
类中的__init__就叫构造函数
一般用于初始化对象的属性
12.析构函数的特点以及函数名是什么
del
析构函数,由系统自动调用且不能加参数
# 当对象即将被销毁的时候调用
# python中自带内存管理机制叫做gc=GarbageCollection=垃圾回收
# 如果系统检测到该对象无人使用则自动进行销毁
# 手动调用del也会触发该函数
13.新式类和经典类的区别是什么(3点)
#新式类和经典类的区别
1.写法不一样
2.新式类更符合OOP编程思想,统一了python中的类型机制
3.在多继承中,新式类采用了广度优先搜索,经典类采用了深度优先搜索
14.什么是魔术方法
魔术方法 = MagicMethod
在类中形如__xxx__的方法就被称为魔术方法
15.常用的魔术方法有哪些
_str unicode
doc 表示类的描述信息
module 表示当前操作的对象在那个模块(main)
class 表示当前操作的对象的类是什么
new 创建对象时为对象分配空间,在初始化方法__init__之前被调用
init 初始化方法,通过类创建对象时,自动触发执行,一般用来定义实例属性
16.python中的私有性怎么表示?
_ 或 __
17.如何动态添加属性
self打点调参数
18.如何安全的声明属性?
只需将属性命名变为以__开头就行
19.继承的特点
#1) 子类拥有父类的属性和方法
#2) 子类可以拥有自己的属性和方法
#3) 子类可以重写父类的方法
20.如何重写父类方法
super:表示当前类父类对象
21.如何重写父类方法但是又具备父类方法的功能
super:表示当前类父类对象
将父类的方法重新实现一遍
22.哪些属性和方法可以被继承?