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


Posted in Javascript onNovember 30, 2010

什么是对象

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

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

对象的状态和行为

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

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

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

封装

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

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

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

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

消息和方法

消息发送

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

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

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

消息

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

消息名称

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

方法

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

签名

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

Javascript 相关文章推荐
jQuery 添加/移除CSS类实现代码
Feb 11 Javascript
jQuery-Tools-overlay 使用介绍
Jul 14 Javascript
在ASP.NET中使用JavaScript脚本的方法
Nov 12 Javascript
用Jquery实现滚动新闻
Feb 12 Javascript
jquery实现两边飘浮可关闭的对联广告
Nov 27 Javascript
深入理解Vue transition源码分析
Jul 30 Javascript
layui 给数据表格加序号的方法
Aug 20 Javascript
100行代码实现一个vue分页组功能
Nov 06 Javascript
VUE接入腾讯验证码功能(滑块验证)备忘
May 07 Javascript
在vue中使用vuex,修改state的值示例
Nov 08 Javascript
element-ui 远程搜索组件el-select在项目中组件化的实现代码
Dec 04 Javascript
vue实现桌面向网页拖动文件的示例代码(可显示图片/音频/视频)
Mar 01 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
php中批量删除Mysql中相同前缀的数据表的代码
2011/07/01 PHP
php通过隐藏表单控件获取到前两个页面的url
2014/09/09 PHP
PHP curl CURLOPT_RETURNTRANSFER参数的作用使用实例
2015/02/07 PHP
php实现字符串首字母转换成大写的方法
2015/03/17 PHP
LaravelS通过Swoole加速Laravel/Lumen详解
2018/03/02 PHP
css动画效果之animation的常用样式
2021/03/09 HTML / CSS
有效的捕获JavaScript焦点的方法小结
2009/10/08 Javascript
JavaScript 三种不同位置代码的写法
2009/10/25 Javascript
ExtJS Ext.MessageBox.alert()弹出对话框详解
2010/04/02 Javascript
javascript cookies操作集合
2010/04/12 Javascript
jQuery EasyUI中对表格进行编辑的实现代码
2010/06/10 Javascript
Javascript学习笔记-详解in运算符
2011/09/13 Javascript
JQuery查找DOM节点的方法
2015/06/11 Javascript
javascript生成不重复的随机数
2015/07/17 Javascript
json格式的javascript对象用法分析
2016/07/04 Javascript
js计算系统当前日期是星期几的方法
2016/07/14 Javascript
AngularJs 国际化(I18n/L10n)详解
2016/09/01 Javascript
jQuery niceScroll滚动条错位问题的解决方法
2018/02/03 jQuery
用Object.prototype.toString.call(obj)检测对象类型原因分析
2018/10/11 Javascript
在vue中使用axios实现post方式获取二进制流下载文件(实例代码)
2019/12/16 Javascript
微信小程序自定义模态弹窗组件详解
2019/12/24 Javascript
[02:41]DOTA2英雄基础教程 亚巴顿
2014/01/02 DOTA
python中实现php的var_dump函数功能
2015/01/21 Python
Python实现树莓派WiFi断线自动重连的实例代码
2017/03/16 Python
Python实现的矩阵类实例
2017/08/22 Python
Python根据文件名批量转移图片的方法
2018/10/21 Python
Python构建图像分类识别器的方法
2019/01/12 Python
django数据关系一对多、多对多模型、自关联的建立
2019/07/24 Python
python连接mysql数据库并读取数据的实现
2020/09/25 Python
HTMl5的存储方式sessionStorage和localStorage详解
2014/03/18 HTML / CSS
Linux面试经常问的文件系统操作命令
2015/11/05 面试题
财会自我鉴定范文
2013/12/27 职场文书
授权委托书范本(单位)
2014/09/28 职场文书
离婚协议书范本
2015/01/26 职场文书
贴吧吧主申请感言
2015/08/03 职场文书
threejs太阳光与阴影效果实例代码
2022/04/05 Javascript