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


Posted in Javascript onNovember 30, 2010

什么是对象

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

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

对象的状态和行为

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

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

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

封装

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

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

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

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

消息和方法

消息发送

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

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

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

消息

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

消息名称

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

方法

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

签名

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

Javascript 相关文章推荐
火狐textarea输入法的bug的触发及解决
Jul 24 Javascript
基于javascript、ajax、memcache和PHP实现的简易在线聊天室
Feb 03 Javascript
window.onload与$(document).ready()的区别分析
May 30 Javascript
jQuery插件 Jqplot图表实例
Jun 18 Javascript
Javascript如何判断数据类型和数组类型
Jun 22 Javascript
jQuery可见性过滤选择器用法示例
Sep 09 Javascript
浅谈jQuery添加的HTML,JS失效的问题
Oct 05 Javascript
Angular2库初探
Mar 01 Javascript
微信小程序scroll-view实现横向滚动和上拉加载示例
Mar 06 Javascript
jQuery表单元素过滤选择器用法实例分析
Feb 20 jQuery
JavaScript定时器常见用法实例分析
Nov 15 Javascript
VUE之图片Base64编码使用ElementUI组件上传
Apr 09 Vue.js
基于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
PHPlet在Windows下的安装
2006/10/09 PHP
PHP 透明水印生成代码
2012/08/27 PHP
PHP表单递交控件名称含有点号(.)会被转化为下划线(_)的处理方法
2013/01/06 PHP
PHP常用特殊运算符号和函数总结(php新手入门必看)
2013/02/02 PHP
php遍历树的常用方法汇总
2015/06/18 PHP
ThinkPHP 3.2.3实现页面静态化功能的方法详解
2017/08/03 PHP
Laravel中如何轻松容易的输出完整的SQL语句
2020/07/26 PHP
JavaScript 对象的属性和方法4种不同的类型
2010/03/19 Javascript
eval与window.eval的差别分析
2011/03/17 Javascript
使用iojs的jsdom库实现同步系统时间
2015/04/20 Javascript
基于javascript实现动态显示当前系统时间
2016/01/28 Javascript
JS操作COOKIE实现备忘记录的方法
2016/04/01 Javascript
BootStrap下jQuery自动完成的样式调整
2016/05/30 Javascript
angularJs中datatable实现代码
2017/06/03 Javascript
浅谈React + Webpack 构建打包优化
2018/01/23 Javascript
Node.js 的 GC 机制详解
2019/06/03 Javascript
js实现图片无缝循环轮播
2019/10/28 Javascript
jquery向后台提交数组的代码分析
2020/02/20 jQuery
解决vue项目router切换太慢问题
2020/07/19 Javascript
[04:09]显微镜下的DOTA2第十二期—NaVi美如画的团战
2014/06/23 DOTA
PyCharm使用教程之搭建Python开发环境
2016/06/07 Python
python 基本数据类型占用内存空间大小的实例
2018/06/12 Python
解决python 自动安装缺少模块的问题
2018/10/22 Python
Python函数的参数常见分类与用法实例详解
2019/03/30 Python
将pip源更换到国内镜像的详细步骤
2019/04/07 Python
Python的bit_length函数来二进制的位数方法
2019/08/27 Python
Django框架 信号调度原理解析
2019/09/04 Python
基于Python爬虫采集天气网实时信息
2020/06/05 Python
CSS3 伪类选择器 nth-child()说明
2010/07/10 HTML / CSS
Yahoo-PHP面试题2
2014/12/06 面试题
Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?用contains来区分是否有重复的对象。还是都不用
2013/07/30 面试题
五年级语文教学反思
2014/01/30 职场文书
读群众路线的心得体会
2014/09/03 职场文书
2014县政府领导班子三严三实对照检查材料思想汇报
2014/09/26 职场文书
婚礼双方父亲致辞
2015/07/27 职场文书
nginx共享内存的机制详解
2022/03/21 Servers