学习面向对象之面向对象的基本概念:对象和其他基本要素


Posted in Javascript onNovember 30, 2010

什么是对象

对象是一件事,一个实体,一个名词,概括来说:万物皆是对象

一个对象保存了某些信息,并知道如何执行某些操作

对象的状态和行为

对象具有状态,状态是对对象的一个或多个属性的描述(如:一个灯 "灯是亮的  这是它的状态")

对象具有行为,行为是对象为为改变自身的状态而发生的作用和反作用(如:一个灯 "把灯关了"  这是它的行为)

面像对象中最原始的单元就是对象

封装

把数据和影响这个数据的操作聚合成一个对象的行为称为“封装”

封装隐藏对象的属性和实现细节,公对公开接口,控制程序中属性的读和修改的访问级别

从外视图看,在一个对象内封装的数据是隐藏的

封装的目的增强安全性和简化编程,使用者不必了解具体的实现细节,而只要通过对象对外开发的接口,一特定的访问权限来使用对象的成员

消息和方法

消息发送

一个对象通过发送“消息”访问另一个对象,这样的访问,称为“消息发送”,是一个对象访问另一个对象的唯一的方法

消息发送过程中包含了:发送器->消息【名称和参数】->接收器 

学习面向对象之面向对象的基本概念:对象和其他基本要素

消息

一个“消息”由一个操作的名称和所有必须的参数组成,当一个对象给另一个对象发送消息时,发送者请求消息接受者执行指定的操作,并(有可能)返回信息,当接受者接收消息时,它以它所知道的方式来执行被请求的操作。这样的请求不规定如何执行一个操作。对于发送者的这种信息总是被隐藏的

消息名称

一个消息包括操作名称和该操作所要求的全部参数,有时,通过名称来查阅操作是很有用的,而不考虑它的参数,我们把一个操作的名称称为“消息名称”。

方法

当一个对象接收一个消息时,它通过执行一种方法来完成被请求的操作。这种“方法”就是一步一步执行算法。当消息名称和操作名称匹配时,响应接收到的消息。正如由信息隐藏原理所规定的。方法始终是一个对象私有表达的一部分,而不是公式接口的一部分。

签名

与消息发送相关的一个更有用的概念是签名,当一个消息由一种方法和方法所需的参数组成时,“签名”就是这种方法的名称,参数类型和返回对象的类型,签名是方法输入的正规说明书,也是方法输出的正规说明书。它规定了使用这种方法所必需的东西

Javascript 相关文章推荐
javascript编程起步(第四课)
Jan 10 Javascript
JavaScript中prototype为对象添加属性的误区介绍
Oct 15 Javascript
深入理解jQuery中live与bind方法的区别
Dec 18 Javascript
ie浏览器使用js导出网页到excel并打印
Mar 11 Javascript
jquery网页回到顶部效果(图标渐隐,自写)
Jun 16 Javascript
jquery实现html页面 div 假分页有原理有代码
Sep 06 Javascript
Angular指令之restict匹配模式的详解
Jul 27 Javascript
微信小程序自定义组件
Aug 16 Javascript
利用vue+elementUI实现部分引入组件的方法详解
Nov 22 Javascript
jQuery实现碰到边缘反弹的动画效果
Feb 24 jQuery
JS实现获取进今年第几天是周几的方法分析
Jun 27 Javascript
layui 根据后台数据动态创建下拉框并同时默认选中的实例
Sep 02 Javascript
基于JQuery的asp.net树实现代码
Nov 30 #Javascript
JQUERY设置IFRAME的SRC值的代码
Nov 30 #Javascript
juqery 学习之四 筛选过滤
Nov 30 #Javascript
juqery 学习之四 筛选查找
Nov 30 #Javascript
用XMLDOM和ADODB.Stream实现base64编码解码实现代码
Nov 28 #Javascript
xss文件页面内容读取(解决)
Nov 28 #Javascript
用js来解决ajax读取页面乱码
Nov 28 #Javascript
You might like
DedeCms模板安装/制作概述
2007/03/11 PHP
php程序效率优化的一些策略小结
2010/07/17 PHP
PHP读书笔记_运算符详解
2016/07/01 PHP
在TP5数据库中四个字段实现无限分类的示例
2019/10/18 PHP
JQuery通过Ajax提交表单并返回结果
2011/07/31 Javascript
jQuery学习笔记之jQuery中的$
2015/01/19 Javascript
jQuery on()方法示例及jquery on()方法的优点
2015/08/27 Javascript
VC调用javascript的几种方法(推荐)
2016/08/09 Javascript
AngularJS出现$http异步后台无法获取请求参数问题的解决方法
2016/11/03 Javascript
canvas压缩图片转换成base64格式输出文件流
2017/03/09 Javascript
详解angular路由高亮之RouterLinkActive
2018/04/28 Javascript
vue项目中使用bpmn-自定义platter的示例代码
2020/05/11 Javascript
浅谈JavaScript中this的指向更改
2020/07/28 Javascript
[46:49]完美世界DOTA2联赛PWL S3 access vs Rebirth 第二场 12.19
2020/12/24 DOTA
python使用calendar输出指定年份全年日历的方法
2015/04/04 Python
用python实现的线程池实例代码
2018/01/06 Python
浅谈python3中input输入的使用
2019/08/02 Python
python3 pillow模块实现简单验证码
2019/10/31 Python
python实现批量转换图片为黑白
2020/06/16 Python
Pycharm创建文件时自动生成文件头注释(自定义设置作者日期)
2020/11/24 Python
使用css3匹配手机屏幕横竖状态
2014/01/27 HTML / CSS
举例详解CSS3中的Transition
2015/07/15 HTML / CSS
Myprotein蛋白粉美国官网:欧洲畅销运动营养品牌
2016/11/15 全球购物
以设计师精品品质提供快速时尚:PopJulia
2018/01/09 全球购物
BNKR中国官网:带你感受澳洲领先潮流时尚
2018/08/21 全球购物
某公司面试题
2012/03/05 面试题
为什么需要版本控制?
2013/08/08 面试题
最新的大学生找工作自我评价
2013/09/29 职场文书
详细的大学生创业计划书模板
2014/01/27 职场文书
先进班集体申报材料
2014/12/26 职场文书
班级元旦晚会开幕词
2015/01/29 职场文书
学校推普周活动总结
2015/05/07 职场文书
建国大业观后感
2015/06/01 职场文书
如何写一份成功的商业计划书
2019/06/25 职场文书
pytorch 带batch的tensor类型图像显示操作
2021/05/20 Python
Python max函数中key的用法及原理解析
2021/06/26 Python