您当前的位置:首页 > 计算机 > 编程开发 > Other

面向对象三大特点

时间:12-14来源:作者:点击数:

封装

  1. 封装就是创建一个对象,集中保存现实中一个事物的属性和功能。
  2. 将零散的数据封装进对象结构中,极其便于大量数据的管理维护。
  3. 今后,只要使用面向对象思想开发时,第一步都是先封装各种各样的对象结构备用。

封装对象三种方式

1.直接用字面量 {}

var 对象名 = { //new Object()的简写属性名: 属性值,... : ... ,方法名: function(){ ... }}

2.用 new: new Object()

var 对象名 = new Object(); //先创建空对象{}//强行给空对象中添加新属性和新方法对象名.新属性=属性值;对象名.新方法=function(){ ... this.属性名 ... }

揭示了 js 语言底层最核心的原理:其实 js 中所有对象底层都是关联数组

ii. 访问成员时:

  • 标准写法都是: 对象名/数组名[成员名]
  • 简写都是: 对象名/数组名.成员名
  • 比如: lilei['sname']lilei.sname 都行

强调:访问对象属性/数组元素,其实有3种方式

  • 标准: 如果下标名后数组名是已知的,对象或数组[已知的属性名或下标名]
  • 简写: 如果下标名后数组名是已知的
  • ​如果下标名是数字,可简写为[已知的数字下标]
  • ​如果下标名是非数字的字符串,可简写为.已知的属性名
  • ​如果属性名或下标不是写死的!来自于一个变量!只能用[变量],不能用.

3.用构造函数

使用前景:用{}一次只能创建一个对象。 如果想创建多个相同结构的对象时,代码就会很多重复! ——极其不便于将来的维护。

1 定义构造函数:

function 类型名(形参1, 形参2, ...){//将来要加入到新对象中的规定的属性this.属性名=形参1;this. xxx = xxx;this.方法名=function(){ ... this.属性名 ... }}

2 使用构造函数反复创建多个相同结构的对象

• var 对象名=new 类型名(实参值1, 实参值2, ...)• 至少做2件事儿:- 创建指定类型的一个新对象- 同时把实参值传给构造函数的形参变量。

3 原理

function 类型名(形参1, 形参2, ...){//将来要加入到新对象中的规定的属性this.属性名=形参1;this. xxx = xxx;this.方法名=function(){ ... this.属性名 ... }}var 对象名=new 类型名(实参值1, 实参值2, ...)

new 的过程

  1. 创建一个新的空对象等待
  2. 让子对象继承构造函数的原型对象
  3. 调用构造函数,将 this 替换为新对象,通过强行赋值方式为新对象添加规定的属性
  4. 返回新对象地址

继承

只要将方法定义放在构造函数中, 那么,每次 new 时都会执行 function, 就会反复创建相同函数的多个副本!——浪费内存,如果将来发现多个子对象都要使用相同 的功能和属性值时, 都可以用继承来解决

什么是继承

父对象中的成员 ,子对象无需重复创建,就可直接使用! 就像使用自己的成员一样!this.属性名/方法名()

js 中继承都是通过原型对象实现

什么是原型对象:替所有子对象集中保存共有属性值和方法的父对象

何时使用原型对象:今后,只要发现多个子对象 都需要使用相同的功能和属性值时,都可将相同的功能和属性值 集中定义在原型对象中。

如何创建原型对象:不用自己创建。 而是在定义构造函数时,程序自动附赠我们一个空的原型对象。

如何找到原型对象:构造函数中都有一个自带的属性 prototype,指向自己配对的原型对象。 • 构造函数.prototype

何时如何继承:不用自己设置继承关系!

  • new 的第二步自动让新创建的子对象, 继承构造函数的原型对象。
  • new 的第二步自动设置子对象的 _proto_ 属性,指向构造函数的原型对象。

如何向原型对象中添加共有属性:

• 只能强行赋值:• 构造函数.prototype.属性名=属性值• 构造函数.prototype.方法名=function(){… …}

多态

什么是多态:同一个函数 在不同情况下表现出不同的状态

包括 2 种:

  • 重载 overload:同一个函数,输入不同的参数,执行不同的逻辑
  • 重写 override:推翻、遮挡

面向对象小总结

  1. 封装:创建对象,2 种:如果只创建一个对象:{} 如果反复创建多个相同结构的对象:构造函数
  2. 继承:所有子对象共用的属性值和方法,都要放在构造函数的原型对象中
  3. 多态:重写:只要觉得从父对象继承来的成员不要用,都在子对象中重写同名成员
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
    无相关信息
栏目更新
栏目热门
本栏推荐