我的 React 之旅:第 15 天
Dec 16, 2024 am 12:47 AM物件導向程式設計(OOP)
物件導向程式設計是一種基於物件概念的程式設計範式。
物件導向程式設計的關鍵原則
1.封裝:
- 將相關變數和函數分組到一個物件中。
- 鼓勵減少函數中的參數,降低複雜性。 例子:
function Circle(radius) { this.radius = radius; this.draw = function() { console.log('draw'); }; } const circle = new Circle(5); console.log(circle.radius); // Access encapsulated property circle.draw(); // Call encapsulated method
登入後複製
2.摘要:
隱藏細節和複雜性,僅暴露物件的必要部分。
簡化介面並減少底層程式碼變更的影響。
範例:抽象方法,同時隱藏內部邏輯。
3.繼承:
允許一個類別(子類別)繼承另一個類別(父類別)的屬性和方法。
減少冗餘程式碼。
例:
class Animal { eat() { console.log("This animal is eating."); } } class Dog extends Animal { bark() { console.log("The dog is barking."); } } const dog = new Dog(); dog.eat(); // Inherited from Animal dog.bark();
登入後複製
4.多態性:
指具有多種形式的物體。
允許為不同的物件類型提供統一的接口,從而實現程式碼重用和靈活性。
例:
class Animal { sound() { console.log("This animal makes a sound."); } } class Dog extends Animal { sound() { console.log("The dog barks."); } } const animal = new Animal(); const dog = new Dog(); animal.sound(); // Output: This animal makes a sound. dog.sound(); // Output: The dog barks.
登入後複製
OOP 的重要性
- 封裝:降低複雜性並增強可重複使用性。
- 抽象:隱藏實作細節,簡化互動。
- 繼承:消除程式碼重複並促進重複使用。
- 多態性:實作彈性和簡化的程式碼結構。
實際範例
類別與建構子
- 以結構化、簡潔的方式建立物件。
- 範例:
class Product { constructor(name, price) { this.name = name; this.price = price; } displayProduct() { console.log(`Product: ${this.name}`); console.log(`Price: $${this.price.toFixed(2)}`); } calculateTotal(salesTax) { return this.price + this.price * salesTax; } } const product1 = new Product("Laptop", 1200); product1.displayProduct(); console.log(`Total Price: $${product1.calculateTotal(0.1).toFixed(2)}`);
登入後複製
與動物的傳承
- 展示可重複使用性和方法重寫。
- 範例:
class Animal { eat() { console.log("This animal eats food."); } } class Bird extends Animal { fly() { console.log("This bird can fly."); } } const bird = new Bird(); bird.eat(); bird.fly();
登入後複製
反思
我學到了什麼:
- 核心 OOP 原則:封裝、抽象、繼承、多型性。
- 降低程式碼複雜性和增強可重複使用性的實際用例。
- 應用建構子、方法和繼承來解決現實世界的問題。
OOP 是另一個層次。
明天我們再去!
以上是我的 React 之旅:第 15 天的詳細內容。更多資訊請關注PHP中文網其他相關文章!
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章
倉庫:如何復興隊友
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
擊敗分裂小說需要多長時間?
3 週前
By DDD
Hello Kitty Island冒險:如何獲得巨型種子
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前
By 尊渡假赌尊渡假赌尊渡假赌
公眾號網頁更新緩存難題:如何避免版本更新後舊緩存影響用戶體驗?
3 週前
By 王林

熱門文章
倉庫:如何復興隊友
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
擊敗分裂小說需要多長時間?
3 週前
By DDD
Hello Kitty Island冒險:如何獲得巨型種子
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前
By 尊渡假赌尊渡假赌尊渡假赌
公眾號網頁更新緩存難題:如何避免版本更新後舊緩存影響用戶體驗?
3 週前
By 王林

熱門文章標籤

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)