javascript(js)基础3:.js面向对象三大特征(封装、继承、多态) and 内部类.js系统函数

封装<script language="JavaScript">    function Person(name,age,sal){        this.name=name;//公开属性        this.age=age;        this.sal=sal;        sal=sal;//私有属性        //如何定义公开方法(特权方法)和私有方法        //如果我们希望操作私有的属性,则使用公开方法        this.show=function(){            window.alert(age+sal)        }        //私有方法,可以访问对象的属性(只能在类内部使用)        function show2(){           window.alert(age+sal)        }    }    var p1=new Person(‘sp‘,34,5000);    p1.show()

</script>通过前面的学习,通过prototype给所有对象添加方法,但是这种方法不能访问类的私有方法和属性
function p1(){            this.a=1;//公开方法            var age=20;//私有方法
        }p1.prototype.func1=function(){    alert(this.a)    alert(age)}        var a=new p1();        a.func1();
阮一峰 prototype

继承
<script language="JavaScript">    function Stu(name,age){

        this.name=name;        this.age=age;        this.show=function(){

            alert(this.age+this.name)        }    }    function M1(name,age){        this.stu=Stu;        this.stu(name,age);//js中实际上通过对象冒充,来继承,此句不能缺少
//M1可以覆盖Stu父类的show方法,重载与重写(覆盖)
    this.show=function(qian1){        alert(qian1)    }
    }    function M2(aa,bb){        this.stu=Stu;        this.stu(aa,bb);    }    var m1=new M1(‘cc‘,30)    m1.show()</script>
js可以多重继承,不支持重载(不可以通过参数个数来决定调用哪个函数,但是,因为JS天然可以支持可变参数,所以它可以看到天然支持重载)function abc(){if argument.length==1{  }}重写:子类可以重新实现一个方法,来覆盖父类的某个方法
function Stu(name,age){

        this.name=name;        this.age=age;        this.show=function(){

            alert(this.age+this.name)        }    }    function M1(name,age){        this.stu=Stu;        this.stu(name,age);//js中实际上通过对象冒充,来继承,此句不能缺少
//M1可以覆盖Stu父类的show方法,重载与重写(覆盖)
    this.show=function(qian1){        alert(qian1+‘重写‘)    }
 var m1=new M1(‘cc‘,30)    m1.show()//这边就会重新调用覆盖的方法
多态

多态案例

//主人类function Master(){    //给动物吃饭    this.feed=function(animal,food){        document.write(‘主人给‘+animal.name+‘食物是‘+food.name);    }

}//食物类function Food(name){    this.name=name;}function Fish(name){    this.food=Food;    this.food(name)}function Bond(name){    this.bond=Food;    this.bond(name)}//动物function Animal(name){    this.name=name;}function Cat(name){    this.cat=Animal;    this.cat(name);}function Dog(name){    this.dog=Animal;    this.dog(name);}var cat=new Cat(‘小白‘)var dog=new Dog(‘小黑‘)var fish=new Fish(‘鲨鱼‘)var bond=new Bond(‘认股‘)var m=new Master()m.feed(cat,fish)m.feed(dog,bond)
闭包定义1:与gc是相关的2:闭实际上涉及到一个对象的成员属性,何时被gc处理3:如何才能对对象属性形成一个闭包?
function A(){  var i=0;  function b(){    alert(i++);  }return b;}A();//此时内存中i空间被gc处理var c=A();//这种用法,gc不会把i当成垃圾c();输出0c()输出1,从而证明变量被闭包

系统内部类Object,array/math/boolean/string/regexp/data/number


//例子//math,静态类alert(Math.abs(-29))//显示当前日期,动态类var not1=new Date();alert(not1.toLocaleDateString())


				
时间: 2024-10-10 23:37:22

javascript(js)基础3:.js面向对象三大特征(封装、继承、多态) and 内部类.js系统函数的相关文章

类与对象 面向对象和面向过程对比 面向对象三大特征:封装 继承 多态

 初识面向对象 面向过程: 一切以事务的发展流程为中心. 面向对象: 一切以对象为中心. 一切皆为对象. 具体的某一个事务就是对象 打比方: 大象进冰箱 步骤: 第一步, 开门, 第二步, 装大象, 第三步, 关门 面向对象:大象, 你进冰箱. 此时主语是大象. 我操纵的是大象. 此时的大象就是对象 1. 面向过程: 一切以事物的流程为核心. 核心是"过程"二字, 过程是指解决问题的步骤, 即, 先?干什么, 后干什么. 基于该思想编写程序就好比在编写一套流水线. 是一种机械 式的编程

(1) 深入理解Java面向对象三大特性 封装 继承 多态

转眼已经工作快6年了,最开始做了2年J2EE:然后整了2年的数据仓库,主要是Cognos的报表开发:现在从事4G LTE核心网的开发,用的语言任然是Java,但写代码的机会不多,基本都是看代码找BUG,偶尔做点new feature也是在比较成熟的框架上复制.粘贴.修改,大部分时间还是在理解业务,钱多.事少.离家近,当时来这家公司图的是后面2点,2年过去了,英文水平有所提升,对敏捷开放也有一定的了解,但技术方面明显退步了或者说没有进步吧,本来以前也不怎么好,因为工作上用不到,自己也没怎么学习,所

面向对象三大特性(封装/继承/多态)

引入:在面向对象思想中,有三大特性,封装  继承  多态. 思考:我们在使用类和对象实现编程的时候,到底是遵循这什么样的逻辑呢?为什么要这样规范类呢? 引入:面向对象很重要的思想就是隐藏,即外部不知道类内部是如何实现业务逻辑的,只管调用和使用结果,这个就是面向对象三大特性之一:  封装 1.封装[掌握] 定义:封装,字面意思就是将内容装到某个容器中,并进行密封保存,在面向对象思想中,封装指数据和对数据的操作捆绑到一起,形成 对外界的隐藏,同时对外提供可以操作的接口. 1.数据:即要操作的数据,在

JAVA的三大特征 封装继承多态- 简单总结

简单总结一下 封装-即从很多类的抽取相同的代码 写在一个类里. 好处是 代码的重用,安全. 继承-减少代码的书写. 其好处也是 代码的重用. 多态- 把不同的子类对象都当作父类来看,可以屏蔽不同子类对象之间的差异,写出通用的代码,做出通用的编程,以适应需求的不断变化. 总的来说还是接口的重用. 那么总结一下,JAVA的三大特征 其好处 就是代码与接口的重用. 封装可以隐藏实现细节,使得代码模块化: 继承可以扩展已存在的代码模块(类): 它们的目的都是为了——代码重用. 而多态则是为了实现另一个目

面向对象三大特征——封装、多态、接口

一.封装 1.封装的概念:将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作与访问.混那个通过规定方法访问数据 2.封装的好处: 1).只能通过规定方法访问数据: 2).隐藏类的实现细节: 3).方便修改实现: 4).方便加入控制语句. 3.封装的步骤: 1).修改属性的可见性.--设为private; 2).创建爱你共有的getter/setter方法.--用于属性的读写; 3).在getter/setter方法中加入属性控制语句.--对属性值的合

Java面向对象三大特性 封装 继承 多态

1.封装 封装的定义: 首先是抽象,把事物抽象成一个类,其次才是封装,将事物拥有的属性和动作隐藏起来,只保留特定的方法与外界联系 为什么需要封装: 封装符合面向对象设计原则的第一条:单一性原则,一个类把自己该做的事情封装起来,而不是暴露给其他类去处理,当内部的逻辑发生变化时,外部调用不用因此而修改,他们只调用开放的接口,而不用去关心内部的实现 举例: public class Human { private int age; private String name; public int get

面向对象三大特性:封装,继承,多态(二、多态)

多态 一,多态的概念 多态(polymorphism), 是指一个名字可以有多种语义.在面向对象语言中,多态是指在一棵继承树中的类中可以有多个同名但不同方法体及不同形参的方法.通常有两种途径实现多态:方法的重载和覆盖. 多态性允许以统一的风格处理已存在的变量及相关的类.多态性使得向系统里增加新功能变得容易.继承性和多态性是降低软件复杂性有有效技术. 二,多态的实现 1.方法的重载 方法重载时: 参数必须不同.参数个数不同或类型不同. 返回值可以相同,也可以不同. 重载的价值在于它允许通过使用一个

面向对象三大特性:封装,继承,多态(一,封装和继承)

封装.继承和多态是面向对象程序设计的三个核心特性. 封装是面向对象技术中的一个重要概念,是一种信息隐藏技术,它体现了面向对象程序设计的思想. 继承是面向对象程序设计方法的一个重要手段,通过继承可以更有效地组织程序结构,明确类间的关系,育雏利用已有的类来完成更复杂.更深入的程序开发. 多态允许以一种统一的风格处理已存在的变量和相关的类,多态性使得向系统增加功能变的容易. 一.封装 封装的含义是:类的设计者把类设计成一个黑匣子,使用者只能看见类中定义的公共变量和公共方法,而看不见方法的具体实现细节,

面向对象三大特性:封装,继承,多态(三、多态的进一步讲解)

多态(polymoph)指的是“执行期间(而非编译期间)”判断所引用对象的实际类型.,根据其实际的类型调用其相应的方法. 多态也叫动态绑定,也叫迟绑定. 多态的存在有三个必要条件: 要有继承 要有重写 父类引用指向子类对象

面向对象的三大特性---封装继承多态

面向对象的三大特性---封装继承多态 首先我们来创建一个控制台程序 新建一个父类Person 创建一个子类继承父类Person 子类: main函数: 输出结果: 根据结果显示创建子对象,首先调用父类的构造函数在调用子类的构造函数. 继承的传递性 例如: A:B,B:C,则A:C ⅰ.继承过来之后被隐藏,有意隐藏加一个关键字"new",如果加了关键字"new",就告诉子类,父类里面的sayHi只能被隐藏,不能被覆写  ⅱ.继承过来之后被覆写/重写,覆写需要在父类里面