10. TypeScript 中类的访问类型

上节已经简单学习了TypeScript中类的使用,这节我们继续学习一下类中的访问类型。其实类的访问类型就是基于三个关键词privateprotectedpublic,也是三种访问类型,这节的主要内容也是讲一下这三个访问类型如何使用,都代表什么意思。

先写一个简单的类

我们新建一个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 的时候,这个概念还真的比较难懂,但是你先掌握了类内和类外的概念后,这三个访问类型就非常好理解了。

「点点赞赏,手留余香」

0

给作者打赏,鼓励TA抓紧创作!

微信微信 支付宝支付宝

还没有人赞赏,快来当第一个赞赏的人吧!

声明:本站所有资源及文章均来源于网络及用户分享或为本站原创,仅限用于学习和研究,任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
码云笔记 » 10. TypeScript 中类的访问类型

发表评论

IT互联网行业相关广告投放 更专业 更精准

立即查看 联系我们