TypeScript学习笔记(9)——类

修饰符
四种修饰符:
1,public,修饰的属性或者方法是共有的,可以在任何地方被访问到,默认所有的属性或者方法都是public的
2,private,修饰的属性或者方法都是私有的,不能在声明它的类外面任何地方访问
3,protected,修饰的属性或者方法都是受保护的,除了声明它的类,还能在该类的子类内部访问,在类的外面和private一样不能访问
4,static,修饰静态方法和静态变量,可以通过类名直接调用,在静态方法中无法使用this访问成员变量或者方法

// 创建一个类
class Person {
    private id:number
    protected area:string
    name:any //当一个类成员变量没有修饰的时候,默认是public修饰,外界是可以访问的
    public age:any
    say():string {
        return `我的名字:${this.name},我的年龄:${this.age}`
    }
    static sex='男'
    static find() {
        // console.log(this.name) //报错
        console.log('我走路')
    }
}
// 实例化
var p = new Person()
p.age = 12
p.name = 'huzhen'
console.log(p.say()) 
Person.find()
console.log(`我性别:${Person.sex},没法改`)
// private 和 protected 属性只能在类的内部进行访问
// console.log(p.id) //报错,编译后执行打印undefined
// p.area = 'wuhan' ///报错

继承
TypeScript的继承用extends关键字,子类中可以使用super访问父类中的public或者protected类型的方法
注意:
1,super只能访问方法,不能访问属性,否则编译会报错;可以使用this来访问父类属性
2,父类中private的属性或者方法,子类均无法访问

// 创建child子类
class Child extends Person {
    callParent() {
        // 编译报错,super只能访问子类中的public和protected的方法,不能访问属性
        // console.log('callParent:' + super.age) 
        
        console.log(super.say())
    }
    callArea() {
        // this.id //报错,id通过private修饰,父类的私有属性
        // 父类中通过protected修饰的属性和方法,可以通过this在子类里面进行访问
        return this.area
    }
}
var c = new Child()
c.callParent()

属性默认值
在声明类的时候,可以给属性设置默认值

class TDefault {
    id=123456
    name:string
}
var t = new TDefault()
console.log(t.id) //123456
console.log(t.name) //undefined

构造函数
构造函数是一种特殊的方法,用来在创建对象的时候初始化对象,总与new一起在创建对象的语句中调用。TypeScript中通过constructor来实现构造函数,构造函数中可以通过this来访问当前类的的属性和方法

class construct {
    id:number
    name:string
    // 定义构造函数
    constructor(id:number, name:string){
        this.id = id
        this.name = name
        this.init()
    }
    init() {
        console.log('我构造了')
    }
    woami() {
        console.log(`我是${this.id},${this.name}`)
    }
}
var cc = new construct(4, 'huzhen')
cc.woami()
console.log(cc.id, cc.name)

控制台输出:

我构造了
我是4,huzhen
4 ‘huzhen’

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值