第九章 class 类

class类 修饰符

 1、public:表明该数据成员、成员函数是对所有用户开放的,所有用户都可以直接进行调用,
 2、private:表示私有,私有的意思就是除了class自己之外,任何人都不可以直接使用,私有财产神圣不可侵犯嘛,即便是子女,朋友,都不可以使用。
 3、protected:对于子女、朋友来说,就是public的,可以自由使用,没有任何限制,而对于其他的外部class,protected就变成private。
作用域 当前类 同一package 子孙类 其他package
 4、static 静态属性 (被static修饰符声明的变量/类方法,可以通过类名.变量名直接引用),而不需要new出一个类,不同的类有自己的静态资源,这可以实现静态资源分类。避免重名。
 5、readonly 关键字将属性设置为只读的。只读属性必须在声明时或构造函数里被初始化。引用类型可以修改
 6、abstract  抽象类与抽象方法 对于abstract方法只允许声明,不允许实现(因为没有方法体)

readonly and const 的区别  
readonly 是一个属性  
const  是一个变量 

1: public 公共属性修饰符

public :表明该数据成员、成员函数是对所有用户开放的,所有用户都可以直接进行调用,并且public 会隐式声明

class Student {
    所有变量在声明的时候会自动添加上 public 

    public name:string = "德莱文" // === name:string = "德莱文"

    age:string = "18";  // === public age:string = "18"

    //以上2个声明方式都是一样的
}

let student = new Student()
console.log(student.name,'s')

2: static 静态属性修饰符

static:(被static修饰符声明的变量/类方法,只能通过class 类名引用),而不需要new出一个类,不同的类有自己的静态资源,这可以实现静态资源分类。避免重名


class Student {
    public name:string = "德莱文" 

    age:string = "18"; 

    static sex:string = "男"

}

let student = new Student()
console.log(student.sex,)//报错 因为sex  是静态属性 只能通过 类名来访问,

console.log(student.name) // 德莱文

console.log(Student.name) //报错 因为pubilc 是属于实例属性,不能通过类名来访问,类名只能访问静态属性

console.log(Student.sex) // 男

3:readonly 只读属性

readonly: 关键字将属性设置为只读属性。只读属性必须在声明时或构造函数里被初始化。引用类型可以修改


class Student {
    //通过readonly修饰符声明的 【基本数据类型】 不能被修改,引用数据类型可以修改  
    readonly name: string = "德莱文"

    static sex: string = "男"

    readonly params: {
        age: string
    } = {
            age: "18"
        }
}

let student = new Student()
student.name = "薇恩"
console.log(student.name)//报错  因为readonly 是个只读属性,不能修改

student.params.age = "20"

console.log(student.params.age) // 20  引用类型可以修改



你可能感兴趣的:(第九章 class 类)