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;
}
}