面向对象初探

封装

  1. 封装函数,写入参数,然后return出去
  2. 构造函数,内部使用this变量,通过使用new运算符生成实例,实例对象的constructor属性指向他们的构造函数
  3. prototype,把那些不变的属性和方法直接定义在prototype对象上,每一个构造函数都有一个prototype属性,指向另外一个对象,这个对象的所有属性和方法都会被构造函数的实例所继承。
  • instanceof运算符 用于验证原型对象与实例对象之间的关系;
  • hasOwnProperty(‘属性‘)方法  用于判断某一个属性到底是本地属性还是继承自prototype对象的属性;
  • in运算符 用于判断某个实例是否含有某个属性,不管是不是本地属性,,,,,还可以用于遍历某个对象的所有属性。 for in。

构造函数的继承

对象之间的‘继承方法’

  1. 构造函数的绑定,通过call或apply方法
  2. prototype模式,A的原型对象指向B的实例,A则可以继承B
  3. 直接继承prototype,A的原型对象指向B的原型,(优:效率较高,省内存;缺:A的原型修改会反映到B的原型)
  4. 利用空对象作为中介,B的原型指向C的原型,A的原型指向B的实例
  5. 拷贝继承,将B的原型的属性和方法循环遍历赋给A的原型
  • 任何一个原型对象都有一个constructor属性,指向它的构造函数
  • 如果替换的A的原型对象 则必须为新的原型对象加上constructor属性,并将这个属性指回原来的构造函数
时间: 2024-11-09 06:22:14

面向对象初探的相关文章

【C++探索之旅】第二部分第一课:面向对象初探,string的惊天内幕

内容简介 1.第二部分第一课:面向对象初探,string的惊天内幕 2.第二部分第二课预告:掀起了"类"的盖头来(一) 面向对象初探,string的惊天内幕 上一课<[C++探索之旅]第一部分第十二课:指针一出,谁与争锋>中,大家辛苦了. 诚然,指针是不容易啃的硬骨头.不过,假以时日,小火慢炖,可以成为一碗上好的骨头汤,对你的C++水平那可是大补. 好了,口水擦一擦,我们正式进入C++探索之旅的第二部分啦,激动不?刚擦完的哈喇子可不要继续流啊. 这一部分的课程称为:C++之

python 类,面向对象初探

概述: 面向对象   是一种编程方式(OOP Object Oriented  Programming). 三大编程范式: 一.面向过程 二.函数式编程 三.面向对象编程 Why: 面向对象的程序的程序设计: python里要不就用面向过程,要不就用面向对象,两种编程网络 面向对象的程序设计: 可控性差,面向对象只解决了可扩展性的问题,一个软件包括了多个特性如图: 可见,面向对象并不是万能的. How ( 如何使用面象对象编程) 第一步:面向对象的程序设计:OOD: ------找-------

java 入门(6)--面向对象初探

类与对象 面向对象的想法是模拟现实世界. 把某样东西的状态数据和它的行为封装起来,从而达到易用.重用.隐藏内部状态的目的. 一般的变量,如: int a, double b 等, 我们定义它之后,它就是一个被动的数据,等特着其它代码来操作它. 而对象,不仅含有数据,还有在数据上操作的方法,这样,数据本身就可能隐藏起来了. 外界只需要调用对象的方法来达到操控对象的目的. 这对外界而言,增加了易用性,因为这些专门针对该对象的方法,进行了精心设计,可以避免复杂度,避免一些误用. 对对象而言,因为不直接

C++程序设计-面向对象

1-1面向对象初探 变量也是Object Data: the properties  or status; is the core Operations: the functions对外能提供的服务,给灯通电或者不通电. map Problem space --------------Solution space object  oriented(00) 是一种组织  设计 和实现的思想(Designs&Implementations) 2-2 面向对象基本概念 对象之间通过message进行信

【C++探索之旅】第一部分第十三课:第一部分小测验

内容简介 1.第一部分十三课:第一部分小测验 2.第二部分第一课预告:面向对象初探,string的惊天内幕 第一部分小测验 上一课中,我们学习了指针这个重中之重. 那么,我们第一部分的课程也圆满地落幕了.不过,小编怎么会这么轻易放过你呢?(其实我是善良的社会主义好青年好嘛). 因此,必须来点简单的测试题,检测一下学习的果效.不难的,不要担心. 测试题目 1.C++之父是谁? Birj Tromman Bjarne Stroustrup Barj Grossoup 2.将文本编辑器,编译器和调试器

初探C++Primer(15.面向对象程序设计)

最近在恶补OOP相关知识,很遗憾学校的课没选上,于是只能上网购进C++Primer一本,开始重学C++之旅... (壮哉我大ZJU,网购半天到货XDD) 学习路线 7.类->13.类设计者的工具->15.面向对象程序设计 总的来说,C++Primer的章节编排顺序是很合理的.有些教材习惯上来就讲虚函数,继承,恰恰缺乏对有关问题的引导,造成学完后半懂不懂的情况. 7.类 类的特性,成员函数,友元函数,构造函数简介 13.类设计者的工具 拷贝构造函数,拷贝赋值运算符,析构函数,内存管理类,合成拷贝

《objective-c基础教程》学习笔记(四)—— OC面向对象编程初探

在上篇博文中,我们编写了一个可以输出不同几何类型的小程序.通过C语言的struct结构体,给大家感受了下,对象的大概样子. 如果用Obejctive-C的面向对象的特征来实现.那么,drawShape函数应该修改成这样: 1 void drawShape(id shapes[], int count) 2 { 3 for(int i=0;i<count; i++) 4 { 5 id shape = shapes[i]; 6 [shape draw]; 7 } 8 } 这里,函数上传入的id类型,

Javascript 面向对象编程初探(一)--- 封装

Javascript是一种基于对象(object-based)的语言,你遇到的所有东西几乎都是对象.但是,它又不是一种真正的面向对象编程(OOP)语言,因为它的语法中没有class(类). 那么,如果我们要把"属性"(property)和"方法"(method),封装成一个对象,甚至要从原型对象生成一个实例对象,我们应该怎么做呢? 一. 生成实例对象的原始模式 假定我们把猫看成一个对象,它有"名字"和"颜色"两个属性. var

JavaScript初探系列之面向对象

面向对象的语言有一个标志,即拥有类的概念,抽象实例对象的公共属性与方法,基于类可以创建任意多个实例对象,一般具有封装.继承.多态的特性!但JS中对象与纯面向对象语言中的对象是不同的,ECMA标准定义JS中对象:无序属性的集合,其属性可以包含基本值.对象或者函数.可以简单理解为JS的对象是一组无序的值,其中的属性或方法都有一个名字,根据这个名字可以访问相映射的. 一   重新认识面向对象 为了说明 JavaScript 是一门彻底的面向对象的语言,首先有必要从面向对象的概念着手 , 探讨一下面向对