TS-修饰符 与 static

TS-修饰符 与 static

1.static: 用于 修饰 变量 或者方法,表示 静态的

  • 当类 中 的 方法 被 声明 为 static 时,其实例化 对象 不可 调用 该方法,只有 类 本身 ,以及 其子类 可以 调用。
    eg:
class A {
	name:string;
	age:number;
	constructor(name:string,age:number){
		this.name = name;
		this.age = age;
	}
	eat(){
		console.log('测试');
	}
	static eat2(){
		console.log('测试2');
	}
}
let a = new A('zhangsan',8);
a.eat();//   '测试'
a.eat2();// error
A.eat2();//  '测试2'
class B extends A {
	constructor(name:string,age:number){
		super(name,age);
	}
}
let  b = new B('lisi',9);
b.eat();// '测试'
b.eat2();// error
B.eat2();// '测试2'

2.public: 修饰 属性 和 方法 公共的,任何地方 都可以访问

  • 不写修饰符 默认 就是 public

3.private: 修饰 属性 和 方法 私有的 , 只能在 本类 内部使用,其余地方 均不可以 访问 实例化对象 和 类 也不可 访问。(子类也不行)

*eg:

class A {
	name:string;
	age:number;
	constructor(name:string,age:number){
		this.name = name;
		this.age = age;
	}
	private eat(){
		console.log('测试');
	}
	eat2(){
		this.eat(); // '测试'
	}
}
var  a = new A('zhangsan',8);
a.eat(); // error
A.eat(); // error

4.protected: 修饰 属性 和 方法 被 保护的, 被类 内部 以及 其 子类 内部 非 static 方法 内 可 访问,实例化 对象 和 类 也不可访问

class A {
	name:string;
	age:number;
	constructor(name:string,age:number){
		this.name = name;
		this.age = age;
	}
	protected eat(){
		console.log('测试');
	}
	eat2(){
		this.eat(); // '测试'
	}
	private eat3(){
		this.eat(); // '测试'
	}
	static eat4(){
		this.eat(); //  error
	}
}
var  a = new A('zhangsan',8);
a.eat(); // error
A.eat(); // error

class B extends A {
	constructor(name:string,age:number){
		super(name,age);
	}
	eat5(){
		this.eat(); // '测试'
	}
	private eat6(){
		this.eat(); // '测试'
	}
	protected eat7(){
		this.eat(); // '测试'
	}
	static  eat8(){
		this.eat(); //  eror
	}
}
let b = new B('李四',9);
b.eat(); //error
B.eat(); // error

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值