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


Posted in Javascript onNovember 30, 2010

什么是对象

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

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

对象的状态和行为

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

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

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

封装

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

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

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

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

消息和方法

消息发送

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

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

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

消息

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

消息名称

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

方法

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

签名

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

Javascript 相关文章推荐
jquery ajax 检测用户注册时用户名是否存在
Nov 03 Javascript
JS教程:window.location使用方法的区别介绍
Oct 04 Javascript
JavaScript入门基础
Aug 12 Javascript
浅谈javascript中的call、apply、bind
Mar 06 Javascript
微信小程序 视图层(xx.xml)和逻辑层(xx.js)详细介绍
Oct 13 Javascript
微信小程序购物商城系统开发系列-目录结构介绍
Nov 21 Javascript
微信小程序 用户数据解密详细介绍
Jan 09 Javascript
Bootstrap实现的经典栅格布局效果实例【附demo源码】
Mar 30 Javascript
Angular2 自定义validators的实现方法
Jul 05 Javascript
微信小程序生成海报分享朋友圈的实现方法
May 06 Javascript
jdk1.8+vue elementui实现多级菜单功能
Sep 24 Javascript
npm全局环境变量配置详解
Dec 15 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代码优化及php相关问题总结
2006/10/09 PHP
关于时间计算的结总
2006/12/06 PHP
理解和运用PHP中的多态性[译]
2011/08/02 PHP
PHP图片上传代码
2013/11/04 PHP
PHP中通过fopen()函数访问远程文件示例
2014/11/18 PHP
JQuery 动态扩展对象之另类视角
2010/05/25 Javascript
通过JS来判断页面控件是否获取焦点
2014/01/03 Javascript
抛弃Nginx使用nodejs做反向代理服务器
2014/07/17 NodeJs
jQuery实现摸拟alert提示框
2016/05/22 Javascript
springmvc接收jquery提交的数组数据代码分享
2017/10/28 jQuery
详解Next.js页面渲染的优化方案
2019/01/27 Javascript
JS对象和字符串之间互换操作实例分析
2019/02/02 Javascript
微信小程序bindtap事件与冒泡阻止详解
2019/08/08 Javascript
js实现自动播放匀速轮播图
2020/02/06 Javascript
vue中的.$mount('#app')手动挂载操作
2020/09/02 Javascript
举例讲解Python中的Null模式与桥接模式编程
2016/02/02 Python
浅谈python中的实例方法、类方法和静态方法
2017/02/17 Python
python3监控CentOS磁盘空间脚本
2018/06/21 Python
Python决策树之基于信息增益的特征选择示例
2018/06/25 Python
python程序变成软件的实操方法
2019/06/24 Python
python过滤中英文标点符号的实例代码
2019/07/15 Python
python中update的基本使用方法详解
2019/07/17 Python
使用Python自动生成HTML的方法示例
2019/08/06 Python
N:Philanthropy官网:美国洛杉矶基础款服装
2020/06/09 全球购物
VLAN和VPN有什么区别?分别实现在OSI的第几层?
2014/12/23 面试题
平面设计师工作职责范文
2013/12/03 职场文书
八年级历史教学反思
2014/01/10 职场文书
师范大学生求职信
2014/06/13 职场文书
合伙购房协议样本
2014/10/06 职场文书
2014年大学生工作总结
2014/11/20 职场文书
2014年党总支工作总结
2014/12/18 职场文书
向女朋友道歉的话
2015/01/20 职场文书
开学第一周总结
2015/07/16 职场文书
Python编写nmap扫描工具
2021/07/21 Python
golang定时器
2022/04/14 Golang
常用的文件对应的MIME类型汇总
2022/04/26 HTML / CSS