class类
getter setter
访问修饰符:public, private, protected
private:私有属性,外部无法访问
如果需要访问私有属性,需要使用getter, setter



访问修饰符 Access Modifier
public
默认的修饰符,不指定就是public
private
protected

set get 关键字,懒人包,书写get set 方法
确保命名规范,一般私有变量,使用下划线开头 _name
1。发现报错了,错误的信息告诉我们,只有在他给为e S5或者更高的时候,才可以使用set get,所以当我们使用了set和get懒人包以后,编译器的版本必须至少设置为es5或者es6以上.
12。简单来说就是把私有属性x和y封装一下,让外部通过特定的方法。Setter和getter来进行访问,typescript作为一种这么高大上的语言。当然他会提供另一种高级的写法,懒人包。这是一个非常特殊的语法结构。
15。不同的公司有不同的命名规范,有些公司在处理成员变量的时候,会把大写的X换成小写的x这个时候变量名称就会重复,所以一般来说解决方案就是私有成员变量,下面加上下划线就可以解决这样的问题了interface x:number private _x
1。定义好的类 默认情况下还是可以通过访问对象可以给类的成员变量重新赋值
4。接口interface就相当于类class的一份说明书,不管是不管是变量也好,方法也好,全部是公开的。所以当我们用private修饰横纵坐标的时候,而接口中的定义却是公有属性,我们的代码自然就会报错了。
class类是紧密相关的属性和函数的集合
避免外部直接操作class属性,就需要使用class访问修饰符加以限制
设置为private属性后可以通过添加get/set函数在外部访问,赋值时可通过set函数进行校验
私有熟悉private通常用下划线表示_key,interface中可直接用key:number声明
Access Modifier 访问修饰符
class里面没有写访问修饰符的都是public属性
public 公有属性

在外部可以修改
private 私有属性
在外部无法访问,且interface里面也不可以定义
ts里面有懒人包可以设置getter setter
interface也比较好使用 私有成员变量

123
访问修饰符
public 共有属性
private 私有属性
protected
note bug
访问修饰符
4-4 Access Modifier 访问修饰符
p rivate / s tatic / p rotect
private / static / protect
private/static/protect
private/static/protect

第一部分
Access Modifier 访问修饰符:public、private、protected
在对象外部直接访问内部成员变量,甚至重新赋值是非常危险的!一般要避免外部直接操作class内部属性,修饰符可以限制外部直接访问class内部属性。
interface IPoint {
drawPoint: () => void;
getDistance: (p: IPoint) => number;
// getter setter 正常写法
// getX:()=>number;
// setX:(value)=>void;
// getY:()=>number;
// setY:(value)=>void;
// 懒人包写法
X: number;
Y: number;
}
class newPoint implements IPoint {
constructor(private x: number, private y: number) {
console.log(`在 constructor 中,x is ${x},y is ${y}`);
}
drawPoint = () => {
console.log(`x : ${this.x}, y : ${this.y}`);
}
getDistance = (p: IPoint) => {
return Math.sqrt(Math.pow(p.X - this.x, 2) + Math.pow(p.Y - this.y, 2));
// return 0;
}
// 懒人包写法
get X() {
return this.x;
}
set X(value: number) {
this.x = value;
}
get T() {
return this.y;
}
set Y(value: number) {
this.y = value;
}
// 正常写法
// setX =(value:number)=>{
// if(value<0){
// throw new Error("value 不能小于0")
// }
// this.x=value;
// }
// setY =(value:number)=>{
// if(value<0){
// throw new Error("value 不能小于0")
// }
// this.y=value;
// }
// getX=()=>{
// return this.x;
// }
// getY=()=>{
// return this.y;
// }
}
get X()
set X(value:numebr){}

get(), setter()