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


Posted in Javascript onNovember 30, 2010

什么是对象

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

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

对象的状态和行为

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

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

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

封装

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

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

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

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

消息和方法

消息发送

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

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

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

消息

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

消息名称

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

方法

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

签名

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

Javascript 相关文章推荐
表单项的name命名为submit、reset引起的问题
Dec 22 Javascript
Javascript获取窗口(容器)的大小及位置参数列举及简要说明
Dec 09 Javascript
javascript操作select元素实例分析
Mar 27 Javascript
JavaScript采用递归算法计算阶乘实例
Aug 04 Javascript
jQuery扩展+xml实现表单验证功能的方法
Dec 25 Javascript
JavaScript 函数节流详解及方法总结
Feb 09 Javascript
原生js实现简单的焦点图效果实例
Dec 14 Javascript
详解vue-cli项目中的proxyTable跨域问题小结
Feb 09 Javascript
vue .sync修饰符的使用详解
Jun 15 Javascript
微信小程序控制台提示warning:Now you can provide attr "wx:key" for a "wx:for" to improve performance解决方法
Feb 21 Javascript
ES6 class的应用实例分析
Jun 27 Javascript
微信小程序使用前置摄像头拍照
Oct 22 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
php程序的国际化实现方法(利用gettext)
2011/08/14 PHP
PHP curl 并发最佳实践代码分享
2012/09/05 PHP
zend framework中使用memcache的方法
2016/03/04 PHP
Ajax::prototype 源码解读
2007/01/22 Javascript
解javascript 混淆加密收藏
2009/01/16 Javascript
20个最新的jQuery插件
2012/01/13 Javascript
利用原生JavaScript获取元素样式只是获取而已
2014/10/08 Javascript
超赞的jQuery图片滑块动画特效代码汇总
2016/01/25 Javascript
全面解析Bootstrap中form、navbar的使用方法
2016/05/30 Javascript
jQuery中deferred对象使用方法详解
2016/07/14 Javascript
Vue.js实现一个自定义分页组件vue-paginaiton
2016/09/05 Javascript
React中ES5与ES6写法的区别总结
2017/04/21 Javascript
jquery实现用户登陆界面(示例讲解)
2017/09/06 jQuery
Vue内部渲染视图的方法
2019/09/02 Javascript
浅谈微信小程序列表埋点曝光指南
2019/10/15 Javascript
js实现开关灯效果
2020/03/30 Javascript
Vue解析带html标签的字符串为dom的实例
2019/11/13 Javascript
PyQT实现多窗口切换
2018/04/20 Python
详解PyCharm配置Anaconda的艰难心路历程
2018/08/13 Python
python实现矩阵打印
2019/03/02 Python
python opencv捕获摄像头并显示内容的实现
2019/07/11 Python
python 实现识别图片上的数字
2019/07/30 Python
全球知名旅游社区法国站点:TripAdvisor法国
2016/08/03 全球购物
奖学金自我鉴定范文
2013/10/03 职场文书
兼职学生的自我评价
2013/11/24 职场文书
电子商务网站的创业计划书
2014/01/05 职场文书
关于赌博的检讨书
2014/01/24 职场文书
环境保护与污染治理求职信
2014/07/16 职场文书
法英专业大学生职业生涯规划范文:衡外情,量己力!
2014/09/23 职场文书
村党建工作汇报材料
2014/11/02 职场文书
2014年班干部工作总结
2014/11/25 职场文书
2015年高二班主任工作总结
2015/05/25 职场文书
植树节新闻稿
2015/07/17 职场文书
初中体育课教学反思
2016/02/16 职场文书
CSS中em的正确打开方式详解
2021/04/08 HTML / CSS
PyTorch device与cuda.device用法
2022/04/03 Python