第九章 class 类
2022-11-28 本文已影响0人
为了_理想
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 引用类型可以修改