面向物件介紹(2020-12-28)
阿新 • • 發佈:2020-12-30
技術標籤:javascript
什麼是面向物件
- 面向物件不是新的東西,它只是過程式程式碼的一種高度封裝,目的在於提高程式碼的開發效率和可維護性。
- 面向物件程式設計 —— Object Oriented Programming,簡稱 OOP ,是一種程式設計開發思想。
它將真實世界各種複雜的關係,抽象為一個個物件,然後由物件之間的分工與合作,完成對真實世界的模擬。
在面向物件程式開發思想中,每一個物件都是功能中心,具有明確分工,可以完成接受資訊、處理資料、發出資訊等任務。
因此,面向物件程式設計具有靈活、程式碼可複用、高度模組化等特點,容易維護和開發,比起由一系列函式或指令組成的傳統的程序式程式設計(procedural programming),更適合多人合作的大型軟體專案。 - 面向物件與面向過程:
- 面向過程就是親力親為,事無鉅細,面面俱到,步步緊跟,有條不紊
- 面向物件就是找一個物件,指揮得結果
- 面向物件將執行者轉變成指揮者
- 面向物件不是面向過程的替代,而是面向過程的封裝
- 面向物件的特性
- 封裝性
- 繼承性
- 多型性
程式中面向物件的基本體現
我們以一個例子來說明面向過程和麵向物件在程式流程上的不同之處。
- 面向過程
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>面向物件介紹</title >
</head>
<body>
<script>
var student1={
name:"小明",
score:550,
}
printScore(student1);
var student2={
name:"小強",
score:660,
}
printScore(student2);
function printScore(student){
console.log("姓名:"+student.name+"\n成績:" +student.score);
}
</script>
</body>
</html>
- 面向物件
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>面向物件介紹</title>
</head>
<body>
<script>
var student1=new student("小明",550);
student1.printScore();
var student2=new student("小強",660);
student2.printScore();
function student(name,score){
this.name=name;
this.score=score;
this.printScore=function(){
console.log("姓名:"+this.name+"\n成績"+this.score);
}
}
</script>
</body>
</html>
Class 是一種抽象概念,比如我們定義Class——Student ,是指學生這個概念,而例項(Instance)則是一個個具體的 Student ,比如, 小明 和 小強 是兩個具體的 Student 。
所以,面向物件的設計思想是:
- 抽象出 Class
- 根據 Class 建立 Instance
- 指揮 Instance 得結果