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


Posted in Javascript onNovember 30, 2010

什么是对象

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

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

对象的状态和行为

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

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

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

封装

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

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

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

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

消息和方法

消息发送

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

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

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

消息

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

消息名称

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

方法

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

签名

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

Javascript 相关文章推荐
Prototype使用指南之form.js
Jan 10 Javascript
jQuery学习之prop和attr的区别示例介绍
Nov 15 Javascript
javascript实现设置、获取和删除Cookie的方法
Jun 01 Javascript
轻松实现javascript图片轮播特效
Jan 13 Javascript
JQuery fileupload插件实现文件上传功能
Mar 18 Javascript
浅谈js多维数组和hash数组定义和使用
Jul 27 Javascript
解析javascript图片懒加载与预加载的分析总结
Oct 27 Javascript
基于JavaScript实现全选、不选和反选效果
Feb 15 Javascript
利用vue + koa2 + mockjs模拟数据的方法教程
Nov 22 Javascript
深入理解Vue官方文档梳理之全局API
Nov 22 Javascript
微信小程序tabBar用法实例详解
Dec 04 Javascript
VUE实现可随意拖动的弹窗组件
Sep 25 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开发GUI
2006/10/09 PHP
php无限级评论嵌套实现代码
2018/04/18 PHP
使用PHPUnit进行单元测试并生成代码覆盖率报告的方法
2019/03/08 PHP
javascript函数库-集合框架
2007/04/27 Javascript
jquery调用wcf并展示出数据的方法
2011/07/07 Javascript
仿jQuery的siblings效果的js代码
2011/08/09 Javascript
简介JavaScript中的push()方法的使用
2015/06/09 Javascript
基于JavaScript制作霓虹灯文字 代码 特效
2015/09/01 Javascript
jQuery检查元素存在性(推荐)
2016/09/17 Javascript
JS正则匹配URL网址的方法(可匹配www,http开头的一切网址)
2017/01/06 Javascript
Bootstrap 表单验证formValidation 实现表单动态验证功能
2017/05/17 Javascript
CSS3+JavaScript实现翻页幻灯片效果
2017/06/28 Javascript
简述JS浏览器的三种弹窗
2018/07/15 Javascript
vue表单验证你真的会了吗?vue表单验证(form)validate
2019/04/07 Javascript
详解webpack打包vue项目之后生成的dist文件该怎么启动运行
2019/09/06 Javascript
详解Vue中CSS样式穿透问题
2019/09/12 Javascript
extjs图形绘制之饼图实现方法分析
2020/03/06 Javascript
[02:23]2014DOTA2国际邀请赛中国战队回顾
2014/08/01 DOTA
Python中的__new__与__init__魔术方法理解笔记
2014/11/08 Python
Python开发如何在ubuntu 15.10 上配置vim
2016/01/25 Python
Python中文分词实现方法(安装pymmseg)
2016/06/14 Python
python中将zip压缩包转为gz.tar的方法
2018/10/18 Python
利用python实现冒泡排序算法实例代码
2019/12/01 Python
Python将列表中的元素转化为数字并排序的示例
2019/12/25 Python
如何在python中执行另一个py文件
2020/04/30 Python
python3.6.5基于kerberos认证的hive和hdfs连接调用方式
2020/06/06 Python
Lombok插件安装(IDEA)及配置jar包使用详解
2020/11/04 Python
美国设计师精美珠宝购物网:Netaya
2016/08/28 全球购物
纽约市的奢华内衣目的地:Anya Lust
2019/08/02 全球购物
波兰品牌鞋履在线商店:Eastend.pl
2020/01/11 全球购物
二手书店创业计划书
2014/01/16 职场文书
学习礼仪心得体会
2014/09/01 职场文书
公司离职证明范本
2014/10/17 职场文书
高校自主招生自荐信2015
2015/03/04 职场文书
党支部鉴定意见
2015/06/02 职场文书
面试提问mysql一张表到底能存多少数据
2022/03/13 MySQL