对象:某种我们可以感知,触摸和操纵的有形的东西。
软件开发中的的对象:对象是一个数据以及相关行为的集合。
面向对象;面向的意思是指向,所有面向对象简单的意思是“功能上指向建模对象”。通过数据和行为来描述交互对象的集合,这是用于对复杂系统建模的众多技术之一。
面向对象分析(00A)是着眼于一个问题,系统或者任务的过程,一些人想要把这个过程变成一个应用,并且识别这些对象以及对象间的交互。分析阶段的输出是一套需求。
面向对象设计(OOD)是把上面(OOA)这些需求转化为实践规范的过程。设计者必须命名这些对象,定义行为并且正式地指定这些对象可以作用于其他对象的具体行为。设计阶段全是关于事情如何做的。设计阶段的输出是实践规范。如果我们想一步就完成设计,我们需要把需求转化成一套类和接口。
面向对象编程(OOP)是把上面这个完美定义的设计转化成一个可以工作的程序的过程。
类描述了对象,它们就像是创建对象的模板,关联同一个类的属性和行为。
对象是类的实例,可以彼此相互关联。一个对象实例是一个带有它自己数据集合和行为的特定对象。
数据通常代表了一个给定对象的个体特征,一个类的对象可以定义这个类的所有实例所共享的一些特定特征。对于给定的这些特征每一个实例可以给他们不同的值。
类有个属性,实例都有一个,它们的属性值可以不同。
属性通常称为特征。
行为是可以发生在对象身上的动作,一个特定的类的对象可以执行的行为被称为方法。就像结构化编程里的函数一样,但是它们可访问和这个对象关联的所有数据。可以接受参数并返回值。
方法的参数是一个对象的列表,需要传递给被调用的方法。方法会使用这些对象来执行任何它想要的行为或者任务。返回的值是这个任务的结果。
在面向对象设计中模块化一个对象的主要目的是决定该对象的公共接口。接口是其他对象可以和该对象交互的属性和方法的集合。
隐藏一个对象实现或者功能细节的过程,通常称为信息隐藏。他有时也被称为封装。
模型是一个真实概念的抽象,抽象是另外一个和封装以及信息隐藏相关的面向对象。
大多数设计模式都会依赖两个基本原则,组合和继承。
组合是把一些对象收集在一起组成一个新对象。
对象之间三种类型的关系:关联,组合和聚合。
继承提供了抽象:多态是依据一个类的不同子类的实现而区别对待这个类的功能。
面向对象编程真正的是对象之间的交互。
方法和普通函数区别:就是所有方法都有一个不需的参数,这个参数通常称为self。
python有一个构造函数和一个初始化函数。
对象:同时包含数据和行为。