typescript学习笔记:类class - 访问控制符【public】【private】【protected】的区别

本文介绍了TypeScript中类的声明和访问控制符的使用,包括public(默认)、private和protected的区别。public成员可在类内外访问,private成员仅限类内访问,而protected成员允许类内及子类访问。通过示例代码展示了这些访问控制符的用法,并提供了在线TypeScript编译器的链接以供实践。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

typescript学习笔记:类class - 访问控制符【public】【private】【protected】的区别

类的申明

我们先申明一个类:

// 类
class Person {
    name; // 类的属性
    eat() { // 类的方法
        console.log('i am eating');
    }
}  

类的实例化:

// 类的实例化
var p1 = new Person();
p1.name = 'zhagnsan';
p1.eat();

类的实例化的关键字是new
可以实例化多个:

var p2 = new Person();
p2.name = 'lisi';
p2.eat();

访问控制符

这时候我们可以给类的属性和方法增加访问控制符,来控制类的属性和方法是否可以在类的外部被访问到。

  1. public
    先以public为例子,给类的属性和方法增加public访问控制符:
// 类
class Person {
    public name; // 类的属性
    public eat() {  // 类的方法
        console.log('i am eating');
    }
} 

public是默认的访问控制符,不给属性和方法写访问控制符时,默认是public
添加了public的属性和方法可以在类的内部类的外部被访问到。
例子:

class Person {
    public name; 
    public eat() {  
        console.log('i am eating');
        console.log(name);  // public修饰的属性在类的内部被访问到
    }
} 

var p1 = new Person();  
p1.name = 'zhagnsan';  // public修饰的属性在类的外部被访问到
p1.eat();  // public修饰的方法在类的外部被访问到
  1. private
    给类的属性和方法增加private访问控制符:
class Person {
    private name; 
    private eat() {  
        console.log('i am eating');
    }
}

添加了private的属性和方法只能可以在类的内部被访问到,如果在类的外部访问就会报错。
例子:

class Person {
    private name; 
    private eat() {  
        console.log('i am eating');
        console.log(name); // private修饰的属性只能在类的内部被访问到
    }
} 
  1. protecred
    给类的属性和方法增加protecred访问控制符:
class Person {
    protected name; 
    protected eat() {  
        console.log('i am eating');
    }
} 

添加了protecred的属性和方法只能可以在类的内部子类被访问到。

class Person {
    protected name; 

    protected eat() {  
        console.log('i am eating');
        console.log(name); // protected修饰的属性在类的内部被访问到
    }
} 

class Staff extends Person{
    public doWork() {
        this.eat(); // protected修饰的属性在子类被访问到
        console.log('i am working');
    }
}

var staff1 = new Staff();
staff1.doWork();

另外,
typescript可以在线编译,网址连接:
link.
https://www.tslang.cn/play/index.html

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值