我的 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)