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


Posted in Javascript onNovember 30, 2010

什么是对象

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

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

对象的状态和行为

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

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

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

封装

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

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

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

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

消息和方法

消息发送

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

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

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

消息

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

消息名称

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

方法

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

签名

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

Javascript 相关文章推荐
javascript parseInt 大改造
Sep 27 Javascript
JQuery toggle使用分析
Nov 16 Javascript
js中一维数组和二位数组中的几个问题示例说明
Jul 17 Javascript
JavaScript简单判断复选框是否选中及取出值的方法
Aug 13 Javascript
JS检测数组类型的方法小结
Mar 14 Javascript
Angular.Js中过滤器filter与自定义过滤器filter实例详解
May 08 Javascript
vue如何使用 Slot 分发内容实例详解
Sep 05 Javascript
详解React-Router中Url参数改变页面不刷新的解决办法
May 08 Javascript
深入了解query和params的使用区别
Jun 24 Javascript
深入学习Vue nextTick的用法及原理
Oct 08 Javascript
开发一个封装iframe的vue组件
Mar 29 Vue.js
Angular CLI发布路径的配置项浅析
Mar 29 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
ThinkPHP实现转换数据库查询结果数据到对应类型的方法
2017/11/16 PHP
TFDN图片播放器 不错自动播放
2006/10/03 Javascript
javascript 无提示关闭窗口脚本
2009/08/17 Javascript
js 控制图片大小核心讲解
2013/10/09 Javascript
JS面向对象基础讲解(工厂模式、构造函数模式、原型模式、混合模式、动态原型模式)
2014/08/16 Javascript
jQuery选择器全集详解
2014/11/24 Javascript
JS组件Bootstrap Table使用方法详解
2016/02/02 Javascript
详解jQuery简单的表单应用
2016/12/16 Javascript
vue中如何实现变量和字符串拼接
2017/06/19 Javascript
在Vue组件上动态添加和删除属性方法
2018/02/23 Javascript
自定义Vue中的v-module双向绑定的实现
2019/04/17 Javascript
layui 实现表单和文件上传一起传到后台的例子
2019/09/16 Javascript
微信小程序实现滚动加载更多的代码
2019/12/06 Javascript
JavaScript实现随机点名程序
2020/03/25 Javascript
原生js+canvas实现下雪效果
2020/08/02 Javascript
[41:37]DOTA2北京网鱼队选拔赛——冲击职业之路
2015/04/13 DOTA
使用python实现拉钩网上的FizzBuzzWhizz问题示例
2014/05/05 Python
使用Python实现一个简单的项目监控
2015/03/31 Python
python中matplotlib的颜色及线条控制的示例
2018/03/16 Python
Python内置函数reversed()用法分析
2018/03/20 Python
python实现简单名片管理系统
2018/11/30 Python
python实现统计文本中单词出现的频率详解
2019/05/20 Python
TensorFLow 数学运算的示例代码
2020/04/21 Python
Python 获取异常(Exception)信息的几种方法
2020/12/29 Python
用CSS3来实现社交分享按钮
2014/11/11 HTML / CSS
德国购买健身器材:AsVIVA
2017/08/09 全球购物
美国打印机墨水和碳粉购物网站:QuikShip Toner
2018/08/29 全球购物
美国最大婚纱连锁店运营商:David’s Bridal
2019/03/12 全球购物
高中毕业自我鉴定范文
2013/10/02 职场文书
《两个铁球同时着地》教学反思
2014/02/13 职场文书
学生会主席竞聘书
2014/03/31 职场文书
纪念九一八事变演讲稿1000字
2014/09/14 职场文书
2015新年联欢晚会开场白
2014/12/14 职场文书
仙境之桥观后感
2015/06/16 职场文书
Python基础之Socket通信原理
2021/04/22 Python
详细聊聊关于Mysql联合查询的那些事儿
2021/10/24 MySQL