ts面向对象OOP

面向对象

面向对象是程序中一个非常重要的思想,简而言之就是程序中所有的操作都需要通过对象来完成,对象中有属性和方法

举例:

  操作浏览器要使用window对象

  操作网页要使用document对象

  操作控制台要使用console对象

要想面向对象,操作对象,首先要拥有对象

要创建对象,必须要先定义类,所谓的类可以理解为对象的模型

程序中可以根据类创建指定类型的对象

举例来说:

可以通过Person类来创建人的对象,通过Dog类创建狗的对象,不同的类可以用来创建不同的对象

 

定义类

/*
  使用class关键字定义类

  属性有2种:
    1、实例属性
      定义:直接定义
      使用:通过new关键字创建一个实例对象,对象去调用该属性
    2、静态属性,也叫类属性
      定义:在定义该属性前加上static关键字
      使用:直接通过类名访问该属性

  方法和属性一样,加上static就是静态方法
*/
class Person {
  readonly name: string = '小明' // 只读属性
  age: number = 19
  static age: number = 18
  sayHello() {
    console.log('hello')
  }
}

const p = new Person()
console.log(p) // Person {name: '小明', age: 19}
// p.name = 'xx' // 只读属性不可赋值
p.age = 88
console.log(p.name) // 小明
console.log(p.age) // 88
p.sayHello() // hello

console.log(Person.age) // 18

构造函数和this

  在new一个对象时会调用constructor函数

class Dog {
  // 1、在类中定义属性
  name: string
  age: number
  bark() {
    // 方法中的this指向调用该方法的对象
    console.log('汪汪汪', this)
  }
  // 2、在构造函数中进行赋值
  constructor(name: string, age: number) {
    // new Dog()时执行构造函数,这里的this指向实例对象
    this.name = name
    this.age = age
  }
}
const dog = new Dog('旺财', 3)
const dog1 = new Dog('阿黄', 4)
console.log(dog) // {name: '旺财', age: 3}
console.log(dog1) // {name: '阿黄', age: 4}
dog.bark() // 汪汪汪 {name: '旺财', age: 3}
dog1.bark() // 汪汪汪 {name: '阿黄', age: 4}

 

上一篇:面向对象OOP


下一篇:JavaSE面向对象编程OOP(学习狂神day04)