码迷,mamicode.com
首页 > 其他好文 > 详细

面向对象理解

时间:2015-12-04 17:56:51      阅读:138      评论:0      收藏:0      [点我收藏+]

标签:

一.何为面向对象编程,这种编程理念和面向过程编程比较有什么优势?
 
面向过程:就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。 
面向对象:是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为
 
二.面向对象编程的主要特点:
1.封装:
  封装是指将数据与具体操作的实现代码放在某个对象内部,使这些代码的实现细节不被外界发现,外界只能通过接口使用该对象,而不能通过任何形式修改对象内部实现,正是由于封装机制,程序在使用某
一对象时不需要关心该对象的数据结构细节及实现操作的方法。使用封装能隐藏对象实现细节,使代码更易维护,同时因为不能直接调用、修改对象内部的私有信息,在一定程度上保证了系统安全性。
2.继承:
    继承来源于现实世界,一个最简单的例子就是孩子会具有父母的一些特征,即每个孩子都会继承父亲或者母亲的某些特征,当然这只是最基本的继承关系,现实世界中还存在着更复杂的继承,面向对象之
以使用继承机制主要是用于实现代码的复用多个类所公用的代码部分可以只在一个类中提供,而其他类只需要继承即可。
3.多态:
  多态与继承关系紧密,是面向对象编程中另一个突出的特征,所谓的多态是指在继承体系中,所有派生类都从基类继承接口,但由于每个派生类都是独立的实体,因此在接收同一消息的时候,可能会生成不
同的响应。多态的作用作为隐藏代码实现细节,使得代码能够模块化;扩展代码模块,实现接口重用。简单来说:一种行为产生多种效果。
    总的来说:封装可以隐藏实现细节同时包含私有成员,使得代码模块化并增加安全指数;基础可以扩展已存在的模块,目的是为了代码重用;多态则是为了保证:类在继承和派生的时候,保证家谱中任何类的实例被正确调用,实现了接口重用。
 
三.python中面向对象的基本语法
技术分享 技术分享
技术分享
其中关于self和__init__这两个特殊关键字的理解
I.self 是表示的实例自己
Python的类的方法和普通的函数有一个很明显的区别,在类的方法必须有个额外的第一个参数(self),但在调用这个方法的时候不必为这个参数赋值,这个特别的参数指代的是要实例化的对象本身(即实例的变量)而按照管理,它用self来表示(也可以换成其它关键字,但最好约定俗成)
1.    在init初始化实例声明参数是,必须使用self
技术分享
技术分享
当在init方法里去掉self,这个类不会报语法错误,但当在后面调用类的方法时会报实例没有对应参数(属性)的错误
AttributeError: Person instance has no attribute ‘name‘
 
2.在类中一般方法里调用实例的参数时也必须有self关键字
技术分享
技术分享
当没有使用self是,该方法会把参数作为全局变量,但没有声明这些全局变量,所以为报错
 
 
NameError: global name ‘name‘ is not defined
 
II.    __init__ 是对实例对象进行初始化
1.对象生命周期中初始化是最重要的一步;每个对象必须正确初始化后才能正常工作
2.通过初始化给实例赋予参数(属性),这个实例拥有的属性可以在类中的其它函数里引用
 
实例的参数不是全局变量,只对这个实例有效,实例也是一种对象。

 







面向对象理解

标签:

原文地址:http://www.cnblogs.com/aiyouaiyouaiyou/p/5019663.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!