10. TypeScript 中类的访问类型
上节已经简单学习了TypeScript中类的使用,这节我们继续学习一下类中的访问类型。其实类的访问类型就是基于三个关键词private、protected和public,也是三种访问类型,这节的主要内容也是讲一下这三个访问类型如何使用,都代表什么意思。
先写一个简单的类
我们新建一个Demo10.ts文件,然后注释掉以前写的代码,防止由于重名而产生冲突。在新的文件里,我们定义一个 Person 类,然后使用这个类的对象,进行赋值,最后打印在控制台上。具体代码如下:
class Person {
name: string;
}
const person = new Person();
person.name = "mybj123.com";
console.log(person.name);
写完后我们直接可以在Terminal(中)输入ts-node demo10.ts进行查看结果,结果会打印出mybj123.com。
public 访问属性讲解
这时候可以打出mybj123.com是因为我们如果不在类里对name的访问属性进行定义,那么它就会默认是public访问属性。
这就相当于下面的这段代码:
class Person {
public name:string;
}
public从英文字面的解释就是公共的或者说是公众的,在程序里的意思就是允许在类的内部和外部被调用。
比如我们在类内调用,我们在写一个sayHello的方法,代码如下:
class Person {
public name:string;
public sayHello(){
console.log(this.name + ' say Hello')
}
}
这里的this.name就是类的内部调用。我们在下面在执行一下这个方法person.sayHello(),终端中可以看到一切正常运行了,顺利打印出了mybj123.com say Hello这句话。
在类的外部调用,我们就可以很简单的看出来了,比如下面的代码,从注释横线下,全部是类的外部。
class Person {
public name:string;
public sayHello(){
console.log(this.name + 'say Hello')
}
}
//-------以下属于类的外部--------
const person = new Person()
person.name = 'mybj123.com'
person.sayHello()
console.log(person.name)
结果我就不演示了,一定是可以被调用的,接下来我们再来看private属性。
private 访问属性讲解
private 访问属性的意思是,只允许再类的内部被调用,外部不允许调用
比如现在我们把 name 属性改成private,这时候在类的内部使用不会提示错误,而外部使用VSCode直接会报错。
class Person {
private name:string;
public sayHello(){
console.log(this.name + 'say Hello') //此处不报错
}
}
//-------以下属于类的外部--------
const person = new Person()
person.name = 'mybj123.com' //此处报错
person.sayHello()
console.log(person.name) //此处报错
protected 访问属性讲解
protected 允许在类内及继承的子类中使用
做一个例子,把name的访问属性换成protected,这时候外部调用name的代码会报错,内部的不会报错,和private一样。这时候我们再写一个Teacher类,继承于Person,代码如下:
class Person {
protected name:string;
public sayHello(){
console.log(this.name + 'say Hello') //此处不报错
}
}
class Teacher extends Person{
public sayBye(){
this.name;
}
}
这时候在子类中使用this.name是不报错的。
通过这个小例子相信你一定知道什么是类的内部和类的外部,也知道了三个访问类型的区别了。其实我最开始学 java 的时候,这个概念还真的比较难懂,但是你先掌握了类内和类外的概念后,这三个访问类型就非常好理解了。
以上关于10. TypeScript 中类的访问类型的文章就介绍到这了,更多相关内容请搜索码云笔记以前的文章或继续浏览下面的相关文章,希望大家以后多多支持码云笔记。
如若内容造成侵权/违法违规/事实不符,请将相关资料发送至 admin@mybj123.com 进行投诉反馈,一经查实,立即处理!
重要:如软件存在付费、会员、充值等,均属软件开发者或所属公司行为,与本站无关,网友需自行判断
码云笔记 » 10. TypeScript 中类的访问类型

微信
支付宝