1、了解面向对象
面向对象 英文Object Oriented,缩写OO
首先,我们要明确,面向对象不是语法,是一个思想,是一种 **编程模式**
面向对象是一种软件开发方法,它将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的灵活性、重用性和扩展性。
面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段后的产物,是一种高级的编程思想。
面向对象的概念和应用已超越了程序设计和软件开发,扩展到如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。
2、面向过程与面向对象
面向: 面(脸),向(朝着)
面向过程: 脸朝着过程 =》 关注着过程的编程模式
面向对象: 脸朝着对象 =》 关注着对象的编程模式
在面向过程的时候,我们自己想要什么东西、实现什么目的,都是自己买材料、打磨、制作。。。。
在面向对象的时候,我们自己想要什么东西、实现什么目的,自己找一个工厂来帮你完成。
实现一个效果
我们来举个例子: 我要车
面向过程
买材料
买部件
怎么组装
需要什么机器搭配
组装
上色
完成
面向对象
找到一个工厂
选一辆车
完成
面向对象就是对面向过程的封装
我们以前的编程思想是,每一个功能,都按照需求一步一步的逐步完成
我们以后的编程思想是,每一个功能,都先创造一个 工厂,这个 工厂 能帮我们作出一个 车(完成这个功能的对象),然后用 工厂 创造出一个 车,我们只要等到结果就好了
面向对象与面向过程的区别
假如我们要实现一个盒子的颜色改变,以下就是面向对象与面向过程的实现方式。
<style>
div{
width: 150px;
height: 100px;
background: red;
margin-top: 20px;
}
</style>
</head>
<body>
<button id="btn">按钮</button>
<div id="box"></div>
<script>
//实现点击按钮改变div的样式
//1.面向过程写法
//实现颜色改变
// var divs = document.getElementById('box');
// var btn = document.getElementById('btn');
// btn.onclick = function(){
// box.style.color = 'blue';
// }
// 2.面向对象写法
// 实现颜色改变
// ChangeStyle是构造函数
function ChangeStyle(btn,box,color){
this.btn=document.getElementById("btn");
this.box=document.getElementById("box");
this.color = color;
}
//再原型中创建点击事件
ChangeStyle.prototype.min = function() {
var _this = this; // 此处必须转存this,因为在function中this表示该点击事件的对象
this.btn.onclick=function() {
_this.box.style.backgroundColor=_this.color;
}
}
//实例化对象
var _this = new ChangeStyle("btn", "div", "blue");
_this.min();
</script>
不要觉得面向对象写法麻烦,它是一个可以重复调用的函数,就是说不管几个只要调用传参就可以了,而不需要重复的去写。
3、面向对象的特征
面向对象的特征:封装、继承、多态、抽象
封装:封装是对象和类概念的主要特性。封装就是把过程和数据包围起来,对数据的访问只能通过已定义的界面。封装保证了模块具有较好的独立性,使得程序维护修改较为容易。对应用程序的修改仅限于类的内部,因而可以将应用程序修改带来的影响减少到最低限度。
继承:继承性是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。在定义和实现一个类的时候,可以在一个已经存在的类的基础之上来进行,把这个已经存在的类所定义的内容作为自己的内容(这里我们用现实中通俗的说法就是子承父业)。
多态:多态性是指相同的操作或函数、过程可作用于多种类型的对象上并获得不同的结果。不同的对象,收到同一消息可以产生不同的结果,这种现象称为多态性,java引入多态的概念原因之一就是弥补类的单继承带来的功能不足(比如说子承父业,自己不喜欢这份家业然后自己再去创业)。
抽象:抽象是指我们所需要的那部分提取出来,只提取我们所要用到的那部分。(用程序代码表示,抽象出来的一般叫做类或者接口)在系统开发中,使用抽象可以尽可能避免过早考虑一些细节。
4、类与对象
类描述了一组有相同特性和相同行为的对象,具有相同属性和相同方法的对象的抽象就是类。
类的实例是对象
对象把数据及对数据的操作方法放在一起,作为一个相互依存的整体。
对象的抽象是类
类与对象的关系:模板 -> 产品
例如:类 ——>手机 对象——>我的手机
类就是包含了所有种类的手机,而我的手机就是一个对象、一个型号,众多种类中
的一个