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


Posted in Javascript onNovember 30, 2010

什么是对象

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

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

对象的状态和行为

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

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

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

封装

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

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

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

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

消息和方法

消息发送

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

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

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

消息

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

消息名称

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

方法

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

签名

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

Javascript 相关文章推荐
用console.table()调试javascript
Sep 04 Javascript
jQuery实现的网页换肤效果示例
Sep 20 Javascript
基于Javascript倒计时效果
Dec 22 Javascript
JS仿JQuery选择器功能
Mar 08 Javascript
JS中使用正则表达式g模式和非g模式的区别
Apr 01 Javascript
vue项目中导入swiper插件的方法
Jan 30 Javascript
React native ListView 增加顶部下拉刷新和底下点击刷新示例
Apr 27 Javascript
详解js创建对象的几种方法及继承
Apr 12 Javascript
vue eslint简要配置教程详解
Jul 26 Javascript
vue v-for直接循环数字实例
Nov 07 Javascript
JS检索下拉列表框中被选项目的索引号(selectedIndex)
Dec 17 Javascript
vue-cli3项目打包后自动化部署到服务器的方法
Sep 16 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 中文处理技巧
2010/04/25 PHP
html读出文本文件内容
2007/01/22 Javascript
javascript各种复制代码收集
2008/09/20 Javascript
元素的内联事件处理函数的特殊作用域在各浏览器中存在差异
2011/01/12 Javascript
实用的JS正则表达式(手机号码/IP正则/邮编正则/电话等)
2013/01/11 Javascript
原生js获取元素样式的简单方法
2016/08/06 Javascript
bootstrapValidator.min.js表单验证插件
2017/02/09 Javascript
jQuery实现多张图片上传预览(不经过后端处理)
2017/04/29 jQuery
利用vscode编写vue的简单配置详解
2017/06/17 Javascript
AngularJS实现tab选项卡的方法详解
2017/07/05 Javascript
vue项目webpack中Npm传递参数配置不同域名接口
2018/06/15 Javascript
Vue路由history模式解决404问题的几种方法
2018/09/29 Javascript
详解如何在Angular优雅编写HTTP请求
2018/12/05 Javascript
react+ant design实现Table的增、删、改的示例代码
2018/12/27 Javascript
js的新生代垃圾回收知识点总结
2019/08/22 Javascript
JavaScript实现网页计算器功能
2020/10/29 Javascript
Python实现基于TCP UDP协议的IPv4 IPv6模式客户端和服务端功能示例
2018/03/22 Python
Python干货:分享Python绘制六种可视化图表
2018/08/27 Python
Linux下python3.6.1环境配置教程
2018/09/26 Python
在python中利用opencv简单做图片比对的方法
2019/01/24 Python
Python求离散序列导数的示例
2019/07/10 Python
python3实现elasticsearch批量更新数据
2019/12/03 Python
Django-xadmin后台导入json数据及后台显示信息图标和主题更改方式
2020/03/11 Python
解决keras加入lambda层时shape的问题
2020/06/11 Python
python实现录音功能(可随时停止录音)
2020/10/26 Python
详解CSS3 弹性布局快速入门
2019/06/06 HTML / CSS
CSS3 filter(滤镜)实现网页灰色或者黑色模式的示例代码
2021/02/24 HTML / CSS
HTML5 Web存储方式的localStorage和sessionStorage进行数据本地存储案例应用
2012/12/09 HTML / CSS
德国足球商店:OUTFITTER
2019/05/06 全球购物
建筑工程专业学生的自我评价
2013/12/25 职场文书
工程专业求职自荐书范文
2014/02/18 职场文书
餐饮业员工工作决心书
2014/03/11 职场文书
设备售后服务承诺书
2014/05/30 职场文书
社区重阳节活动总结
2015/03/24 职场文书
2016年党员学习廉政准则心得体会
2016/01/20 职场文书
Python基础学习之奇异的GUI对话框
2021/05/27 Python