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


Posted in Javascript onNovember 30, 2010

什么是对象

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

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

对象的状态和行为

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

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

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

封装

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

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

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

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

消息和方法

消息发送

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

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

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

消息

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

消息名称

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

方法

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

签名

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

Javascript 相关文章推荐
Javascript 获取链接(url)参数的方法
Feb 15 Javascript
Prototype Number对象 学习
Jul 19 Javascript
Javascript实现的鼠标经过时播放声音
May 18 Javascript
High Performance JavaScript(高性能JavaScript)读书笔记分析
May 05 Javascript
angularJS 中$scope方法使用指南
Feb 09 Javascript
jquery实现横向图片轮播特效代码分享
Nov 19 Javascript
jQuery+CSS实现滑动的标签分栏切换效果
Dec 17 Javascript
Highcharts使用简例及异步动态读取数据
Dec 30 Javascript
Bootstrap安装环境配置教程分享
May 27 Javascript
JS转换HTML转义符的方法
Aug 24 Javascript
详解React项目中碰到的IE问题
Mar 14 Javascript
js面向对象封装级联下拉菜单列表的实现步骤
Feb 08 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应用提速面面观
2006/10/09 PHP
简单介绍PHP的责任链编程模式
2015/08/11 PHP
WordPress中用于获取文章信息以及分类链接的函数用法
2015/12/18 PHP
详解在PHP的Yii框架中使用行为Behaviors的方法
2016/03/18 PHP
JavaScript 联动的无限级封装类,数据采用非Ajax方式,随意添加联动
2010/06/29 Javascript
jQuery学习笔记之jQuery的动画
2010/12/22 Javascript
jQuery把表单元素变为json对象
2013/11/06 Javascript
开发插件的两个方法jquery.fn.extend与jquery.extend
2013/11/21 Javascript
JavaScript淡入淡出渐变简单实例
2015/08/06 Javascript
AngularJS中的Directive自定义一个表格
2016/01/25 Javascript
jQuery Mobile 和 Kendo UI 的比较
2016/05/05 Javascript
浅谈bootstrap源码分析之tab(选项卡)
2016/06/06 Javascript
浅谈几种常用的JS类定义方法
2016/06/08 Javascript
AngularJS入门教程之 XMLHttpRequest实例讲解
2016/07/27 Javascript
JS实现禁止鼠标右键的功能
2016/10/15 Javascript
jquery延迟对象解析
2016/10/26 Javascript
从零开始学习Node.js系列教程四:多页面实现数学运算的client端和server端示例
2017/04/13 Javascript
基于bootstrap实现bootstrap中文网巨幕效果
2017/05/02 Javascript
Vue利用路由钩子token过期后跳转到登录页的实例
2017/10/26 Javascript
Angular实现的简单查询天气预报功能示例
2017/12/27 Javascript
Vue 创建组件的两种方法小结(必看)
2018/02/23 Javascript
微信小程序项目实践之主页tab选项实现
2018/07/18 Javascript
Vuex 使用及简单实例(计数器)
2018/08/29 Javascript
配置node服务器并且链接微信公众号接口配置步骤详解
2019/06/21 Javascript
浅谈python新手中常见的疑惑及解答
2016/06/14 Python
Python进行数据提取的方法总结
2016/08/22 Python
pytorch查看torch.Tensor和model是否在CUDA上的实例
2020/01/03 Python
Tensorflow不支持AVX2指令集的解决方法
2020/02/03 Python
python中68个内置函数的总结与介绍
2020/02/24 Python
在Ubuntu中安装并配置Pycharm教程的实现方法
2021/01/06 Python
家长学校实施方案
2014/03/15 职场文书
多媒体编辑专业毕业生求职信
2014/06/13 职场文书
护理实习生带教计划
2015/01/16 职场文书
离婚协议书样本
2015/01/26 职场文书
婚礼必备主持词范本!
2019/07/23 职场文书
学习nginx基础知识
2021/09/04 Servers