面向对象基本概念
面向对象方法的解决问题的思路是从现实世界中的客观对象(如人和事物)入手,尽量运用人类的自然思维方式来构造软件系统,这与传统的结构化方法从功能入手和信息工程化方法从信息入手是不一样的。在面向对象方法中,把一切都看成是对象。
1、面向对象的定义
从程序设计方法的角度看,面向对象是一种新的程序设计范型(paradigm),其基本思想是使用对象、类、继承、封装、聚合、关联、消息、多态性等基本概念来进行程序设计。是一种运用对象、类、继承、封装、聚合、关联、消息、多态性等概念来构造系统的软件开发方法。
2、面向对象的基本思想
用对象的属性表示事物的性质;用对象的操作表示事物的行为。(属性与操作)
对象的属性与操作结合为一体,成为一个独立的、不可分的实体,对外屏蔽其内部细节。(对象的封装)
对事物进行分类。把具有相同属性和相同操作的对象归为一类,类是这些对象的抽象描述,每个对象是它的类的一个实例。 (分类)
复杂的对象可以用简单的对象作为其构成部分。(聚合)
通过在不同程度上运用抽象的原则,可以得到较一般的类和较特殊的类。特殊类继承一般类的属性与操作,从而简化系统的构造过程及其文档。(继承)
类具有封闭性,把内部的属性和操作隐藏起来,只有公共的操作对外是可见的。 (类的封闭性)
对象之间通过消息进行通讯,以实现对象之间的动态联系。 (消息)
通过关联表达类(一组对象)之间的静态关系。(关联)
————————————————
如何定义类
class 加 名字 注意:首字母大写 驼峰法!!
面向对象的三大特征
1.封装:
在python中用双下划线开头的方式将属性隐藏起来(设置成私有的)
第一种—形式
正常
class
Lzy:
def
fa(
self
):
封装
class
Lzy:
def
__fa(
self
):
第二种
property属性
property是一种特殊的属性,访问它时会执行一段功能(函数)然后返回值
只要在方法的上方加上一个装饰器 @property ,就可以将方法当做属性使用
2.继承
方法
class
A:
def __init__(self):
pass
def print_class_name(self):
print
"Lzy"
class
B(A):
def __init__(self):
pass
if
__name__ ==
"__main__"
:
class_b = B()
class_b.print_class_name()
此时“A”类为“B”类的父类或者叫基类,“B”类是“A”类的子类,子类会继承父类的所有公共方法。
3.多态
多态性是指具有不同功能的函数可以使用相同的函数名,这样就可以用一个函数名调用不同内容的函数。在面向对象方法中一般是这样表述多态性:向不同的对象发送同一条消息,不同的对象在接收时会产生不同的行为(即方法)。也就是说,每个对象可以用自己的方式去响应共同的消息。所谓消息,就是调用函数,不同的行为就是指不同的实现,即执行不同的函数。