什么是面向对象?
面向对象(通俗理解):个人认为就是不了解原理的情况下,会使用功能
对象(通俗理解):不了解内部的结构,知道表面的各种操作(就好比一个黑盒子一样)
举例:
我相信很多人学过一个对象Array(数组),里面有一个方法sort(),我们只要一调这个就可以把数组里的东西都排好序,但我们可能不知道这个sort(),它内部是怎么工作的。
面向对象是一种通用思想,并非只有编程中能用,任何事情都可以用(面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段后的产物)
面向对象编程(OOP)的特性:
封装:就是看不到里面的东西,用好表面的功能就OK了(不考虑内部实现,只考虑功能使用)
继承:就是从父类上继承出一些方法和属性,子类,又有一些自己的特性(从已有对象上,继承出新的对象)
多态:指的是同一个操作作用于不同的对象,会产生不同的执行结果
抽象:就是把最主要的特征或跟实际问题相关的特征抽出来(抓住核心问题)
案例:
function createperson(name,qq)// 这里的函数名在面向对象里叫做类
{
var obj=new Object(); //obj叫做实例,同时也是对象
obj.name=name;// 对象属性
obj.qq=qq;
obj.showName=function()// 对象方法
{
alert("名字是:"+this.name);// this指针,在这里指的就是这个对象
};
obj.showQQ=function()// 对象方法
{
alert("qq是:"+this.qq);
};
return obj; // 返回对象
};
var obj1=createperson('6688jingtian','2405878063');
obj1.showName();
obj1.showQQ();
var obj2=createperson('小明','456465644');
obj2.showName();
obj2.showQQ();