万事万物皆对象

前言

“万事万物皆对象” 我理解认为是男女之间的对象、人与人之间的对象;后来理解的是宇宙的一切存在形式皆是对象,对象是事物存在形式 "Thinking in JAVA中所说的万事万物皆对象"是指对象的普遍性,暗示对象开发的这种方法的广泛适应性.学了前端后,理解的又是不同,js前端对象。

一、java中的对象

1. 面向对象是什么?


面向对象是流行于编程领域的一种哲学观念——一种看待事物的方式。那什么是对象呢?对象是一种对现实事物的抽象,对象由静态的属性和动态的行为组成。简单的例子是,狗是一个对象,狗有4条腿,一个尾巴等等是狗的静态属性;叫和咬这类的内容,是狗的动态行为。同样的,在企业级应用中,对于一个HR manager,姓名、部门、包括他的头衔(HR manager)属于他的静态属性,审批请假单、审批倒休单是他的动态行为。这样,我们就把现实世界和通过代码构成的世界完全地等同了起来。在面向对象的视角下,我们认为世界是由对象和对象之间的关系组成的,而世界上的所有东西都是对象。


2. 面向对象的组成

2.1 类和继承、组合


面向对象的观念,就是对我们面对的世界进行建模,使用接近自然语言(编程界叫“人话”)的方式来描述这些模型。类,是面向对象中的第一个概念,之后所有的概念都是基于类之上的。简单的说,类是对于相同属性和行为的对象的一个概括或者抽象。如果我们说,我们可以把动物看成一个类的话,是因为所有的动物都有一些共同的属性和行为,比如有头有脚会移动发出声音......

继承,是面向对象领域的另一个重要概念。这里的继承,和我们通常意义的继承非常接近,在面向对象领域中,一个类继承另一个类,是指一个类通过继承自动拥有了另一个类的属性和方法。

有了类和继承两个概念,我们就可以试着去结构化我们熟悉的这个世界。比如,我们可以想象有个叫动物的类,动物有头有脚会动会叫;灵长类动物继承于动物,同时有自己一些独特的属性和行为,而鱼类也继承动物这个类,也有自己一些独特的东西;而人继承于灵长类动物类......在企业中的办公系统中,报表是一个类,考勤报表继承于报表类,工资报表也继承于报表,而考勤报表和工资报表其实并不是一种东西......慢慢地,我们好像建立了一个族谱似的东西,而这种结构化的类图不仅在编程领域起着非常重要的价值,同时,对我们理解世界有非常重要的价值。

但类和继承,即使在构建静态的族谱方面,也还是存在一些不足。如果一个类中,需要包含另一个类,或者包含另一个类的部分信息怎么办?这时候,我们需要运用一些组合的技巧。组合,是在实务编程中容易被忽视的一个概念,而实际上我们在编程中,只有不断运用组合的技巧才能创建更合理和有效的结构和协作方式。


2.2 接口


接口是一种类似类的抽象方式,但和类有很大的不同。接口,规定了一组关于输入和输出的契约。举例而言,对于鸟而言,它们会飞是因为它们有翅膀,翅膀会扇动,但不同的鸟的飞行方式是截然不同的。于是我们可以定义一个飞的接口,输入是鸟的翅膀,而输出可能是飞的高度之类的内容。对于编程实物,我们可以定义一个审批接口,输入是审批的单据,输出可能是批准或者拒绝。同样,我们可以把一组相关的接口放在一起,同样也可以包含一些静态属性,此时这种结构非常像类,但确实不是。

接口,是针对相同的输入输出的行为的抽象,目的是应对变化。而类,是一个具有共同的属性和行为的种类的概况,类是一种模型描述。很多时候,类在抽象粒度上要大于接口,接口更趋向于对某个具体而微的细节的抽象。


在编程领域,唯一不变的就是变化。面向对象的理念在编程界的意义在于,它提供了各种各样的工具来支持不断发生的变化。而这些工具的雏形基本都来自于现实世界。

二、js函数对象

js中的对象

理解对象

简单来说,对象是键值对的集合。
属性类型:数据属性,访问器属性。

1、数据属性:Configurable,Enumerable,Writable,Value

  • configurable:是否能通过delete删除该属性,对象上定义的属性默认为true.
  • enumerable:是否可通过for-in枚举,对象上定义的属性默认为true.
  • writable:是否可修改,对象上定义的属性默认为true。
  • value:这个属性的值,默认undefined。
  • 修改属性默认的特性:Object.defineProperty(对象,属性,描述符对象)
Object.defineProperty(person, 'name'
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值