学习笔记27面向对象学习

Posted SAP剑客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学习笔记27面向对象学习相关的知识,希望对你有一定的参考价值。

面向对象学习

一、面向对象技术简介

1、面向过程

面向过程:根据业务逻辑从上到下写代码;

面向过程的程序设计把计算机程序视为一系列的命令集合,即一组函数的顺序执行。为了简化程序设计,面向过程把函数继续切分为子函数,即把大块函数通过切割成小块函数来降低系统的复杂度。

面向过程编程最易被初学者接受,其往往用一长段代码来实现指定功能,开发过程的思路是将数据与函数按照执行的逻辑顺序组织在一起,数据与函数分开考虑

面向过程的程序设计的核心是过程(流水线式思维),过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西。

  • 优点:极大的降低了写程序的复杂度,只需要顺着要执行的步骤,堆叠代码即可。
  • 缺点:一套流水线或者流程就是用来解决一个问题,代码牵一发而动全身。

2、面向对象

面向对象:将数据与函数绑定到一起进行封装,这样能够更快速的开发程序,减少重复代码的重写过程。

面向对象的程序设计的核心是对象(上帝式思维),要理解对象为何物,必须把自己当成上帝,上帝眼里世间存在的万物皆为对象,不存在的也可以创造出来。

面向对象的程序设计好比如来佛祖设计西游记,如来要解决的问题是把经书传给东土大唐,如来想了想解决这个问题需要四个人:唐僧、沙和尚、猪八戒、孙悟空。每个人都有各自的特征和技能(这就是对象的概念,特征和技能分别对应对象的属性和方法),然而这并不好玩,于是如来又安排了一群妖魔鬼怪,为了防止师徒四人在取经路上被搞死,又安排了一群神仙保驾护航,这些也都是对象。然后取经开始,师徒四人与妖魔鬼怪神仙互相缠斗直到最后取得直经。如来根本不会管师徒四人按照什人流程去取经。

  • 优点:解决了程序的扩展性,对某一个对象单独修改,会立刻反映到整个体系中;
  • 缺点:可控性差,无法像面向过程的程序设计那样很精准的预测问题的处理流程和结果,面向对象的程序一旦开始就由对象之间的交互解决问题,即便是上帝也无法预测最终结果。

【相关概念】

类(Class):用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例;

方法(Method):类中定义的函数,也就是一个类里面定义的功能;

类变量(类属性):类变量在整个实例化的对象中式公用的。类变量定义在类中且在函数体之外,类变量通常不作为实例变量使用;

实例变量(实例属性):定义在方法中的变量,只作用于当前实例的类;

实例化:创建一个类的实例,类的具体对象;

对象:通常类定义的数据结构实例,对象包括两个数据成员(类变量和实例变量)和方法;

数据成员:类变量或者实例变量,用于处理类及其实例对象的相关数据;

继承:即一个派生类(derived class)继承基类(base class)的字段和方法。继承也允许把一个派生类的对象作为一个基类对象对待。

方法重写:如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程就叫做方法的覆盖(override),也称之为方法的重写。

二、创建类

使用class语句来创建一个新类,class之后为类的名称并以冒号结尾。

class 类名称:

       类的属性

       类的方法

 

类属性的操作

类属性一般用来存储所有通过类实例化的对象共有的属性

当改变类的属性值,所有实例化对象的属性值都会发生改变。

 

类的方法

类的方法实际上就是封装在类中的函数,类中的方法一定都会有一个默认的参数“self”,“self”指代的是将来要用这个类实例化的对象。

也就是说类的方法和函数的区别在于,方法已经有了一个要操作的对象了,而函数需要把操作的目标传入进去。

 

和函数相同,类也可以具有参数,参数在调用方法的时候传入即可。

 

 

以上是关于学习笔记27面向对象学习的主要内容,如果未能解决你的问题,请参考以下文章

JAVA学习笔记面向对象

Python学习笔记-面向对象

python学习笔记:面向对象编程类

python学习笔记:面向对象编程类

python学习笔记:面向对象编程类

python学习笔记8--面向对象编程