📜  POO js - Javascript (1)

📅  最后修改于: 2023-12-03 14:45:33.443000             🧑  作者: Mango

POO js - Javascript
什么是POO?

POO是指面向对象编程(Programming Object Oriented, 简称POO),它是一种编程范式,通过使用对象、类和继承等概念来组织和构建程序。

为什么要使用POO?

面向对象编程具有以下优点:

  1. 代码重用性:可以通过创建类和对象来实现代码的重用,避免重复编写相似的代码。
  2. 模块化开发:通过将程序分解成多个对象,每个对象负责完成特定的功能,可以实现模块化开发,提高代码的可维护性和可扩展性。
  3. 封装性:通过封装数据和方法,能够隐藏内部实现细节,只暴露必要的接口,提高代码的安全性。
  4. 继承性:可以通过继承来创建新的类,并从现有类中继承属性和方法,减少代码的重复性。
  5. 多态性:可以通过多态来提高代码的灵活性和可拓展性,同一个方法可以根据不同的对象表现出不同的行为。
POO中的基本概念

在POO中,有一些基本的概念需要了解:

1. 类(Class)

类是一种抽象的概念,它定义了对象的属性和方法等。类是创建对象的模板,用于定义对象的共同特性。

class Person {
  constructor(name, age) {
    this.name = name;
    this.age = age;
  }
  
  sayHello() {
    console.log(`Hello, my name is ${this.name}`);
  }
}

2. 对象(Object)

对象是类的实例,通过类来创建对象。对象具有类定义的属性和方法。

const person1 = new Person("John", 28);
person1.sayHello(); // 输出:Hello, my name is John

3. 属性(Property)

属性是类中的变量,用于存储数据。

class Person {
  constructor(name, age) {
    this.name = name; // name为属性
    this.age = age; // age为属性
  }
}

4. 方法(Method)

方法是类中的函数,用于定义对象的行为。

class Person {
  constructor(name, age) {
    this.name = name;
    this.age = age;
  }
  
  sayHello() { // sayHello为方法
    console.log(`Hello, my name is ${this.name}`);
  }
}

5. 继承(Inheritance)

继承是指一个类可以从另一个类中继承属性和方法。子类可以拥有父类的所有属性和方法,同时还可以定义自己的特有属性和方法。

class Student extends Person {
  constructor(name, age, grade) {
    super(name, age);
    this.grade = grade;
  }
  
  study() {
    console.log(`${this.name} is studying...`);
  }
}

const student1 = new Student("Alice", 20, "A+");
student1.sayHello(); // 输出:Hello, my name is Alice
student1.study(); // 输出:Alice is studying...

通过关键字extends可以实现类的继承,子类使用super关键字调用父类的构造函数。

总结

POO是一种强大的编程范式,它通过对象、类和继承等概念实现代码的组织和构建。使用POO可以提高代码的可维护性、可扩展性和重用性。学习POO不仅仅是学习语法,更是一种设计和思维方式的转变。开始学习和使用POO,会使你成为一名更加优秀的程序员。