TypeScript入门2:类、继承、访问修饰符

class Person {
  //实例属性
  id: number;
  name: string;
  age: number = 18;
  
  //构造函数
  constructor(id: number, name: string) {
    this.id = id;
    this.name = name;
  }
  
  //实例方法
  introduce(): string {
    return `hello,I am ${this.name},and I am ${this.age} years old`
  }
}


//创建对象
let person1 = new Person(1,'zhangsan');

//对象及其属性读写
console.log(person1);
console.log(person1.name); //读
person1.name = 'lisi'; //写
console.log(person1.name);

//实例方法调用
let intro = person1.introduce();
console.log(intro);


//静态成员:Typescript 中的类中可以包含静态成员(静态属性和静态⽅法),静态成员⾪属于类本身,⽽不属于某个对象实例。静态成员通⽤⽤于定义⼀些常量,或者⼯具⽅法
class Constants{
  static count:number=1;
}
 
class Utils{
  static toLowerCase(str:string){
    return str.toLowerCase();
  }
}

//静态成员⽆需通过对象实例访问,直接通过类本身访问即可
console.log(Constants.count);
console.log(Utils.toLowerCase('Hello World'));


// 继承:⼦类可以直接使⽤⽗类的特性,并根据需要添加新的特性或覆盖现有的特性。这种机制赋予⾯向对象程序良好的扩展性
class Student extends Person {
  classNumber: string;

  constructor(id: number, name: string, classNumber: string) {
    super(id, name);
    this.classNumber = classNumber;
  }

  introduce(): string {
    return super.introduce()+`, and I am a student`;
  }
}
  
let student = new Student(1,'xiaoming','三年⼆班');
console.log(student);
console.log(student.introduce());
/*
类的继承需要使⽤关键字 extends
⼦类构造器中需使⽤ super() 调⽤⽗类构造器对继承⾃⽗类的属性进⾏初始化。
在⼦类中可以使⽤ this 关键字访问继承⾃⽗类的属性和⽅法。
在⼦类中可以使⽤ super 关键字访问⽗类定义的⽅法
*/


//访问修饰符:访问修饰符⽤于控制类成员(属性、⽅法等)的可访问性。TypeScript提供了三种访问修饰符,分别是private、protected和public
/*
private 修饰的属性或⽅法是私有的,只能在声明它的类中的被访问。
protected 修饰的属性或⽅法是受保护的,只能在声明它的类和其⼦类中被访问。
public 修饰的属性或⽅法是公有的,可以在任何地⽅被访问到,默认所有的属性和⽅法都是public 的。
*/
class Personnew {
  private id: number;
  protected name: string;
  public age: number;
 
  constructor(id: number, name: string, age: number) {
    this.id = id;
    this.name = name;
    this.age = age;
  }
}
 
posted @ 2024-04-30 14:09  yub4by  阅读(10)  评论(0编辑  收藏  举报