let p = new Person(“jonas”,18)
console.log(p.sayHi())//My name is jonas,18 years old.
在上面的代码中,定义了一个类 Person ,类中声明了两个属性 name 和 age ,构造器,方法 sayHi 。在类的外面可以通过 new 关键字来生成类的实例化对象,通过实例化对象就可以调用类中的方法。
类的封装性
=====
传统的面向对象语言,类都有三大特性:封装,继承,多态。在 TS 中,类也有封装这个特性。
在 Java 中,封装性主要体现在四种权限修饰符中,通过定义不同的权限从而让属性或者方法对不同的调用者开放或者关闭。在 TS 中,也正是如此。
默认为 public
在前面的例子中,我们并没有为属性或方法声明权限,其实,在 TS 中,缺省修饰符就默认被修饰为 public ,也就是说,显示的加上修饰符 public 和缺省是一样的。
私有的 private
在前面的例子中,我们通过 new 关键字生成了实例 p ,此时因为类中的属性 name 和 age 都是 public 的,所以在类的外面可以通过 对象.属性名 的方式来访问。但是,这不是面向对象的思想,这会破坏了封装性,我们往往对外暴露一个 getter 和 setter 来操作类中的属性,而不是直接的暴露一个属性。
要将这些属性私有化也很简单,跟传统的面向对象语言是一样的,通过 private 关键字来修饰该属性就可以了。
class Person {
private name:string
age:number
constructor(name:string,age:number){
this.name = name
this.age = age
}
sayHi(){
return My name is ${this.name},${this.age} years old.
}
}
let p = new Person(“jonas”,18)
console.log(p.name)//报错!!
从上面的例子来看,加上 private 的属性就不能在外部来访问了,根据面向对象的思想,此时我们应该提供 setter 和 getter 对该属性进行访问。
在 TS 中,我们可以通过关键字 get 和 set 来定义存储器。
class Person {
private _name:string
private _age:number
constructor(name:string,age:number){
this._name = name
this._age = age
}
get name(): string {
return this._name;
}
set name(value: string) {
this._name = value;
}
get age(): number {
return this._age;
}
set age(value: number) {
this._age = value;
}
sayHi(){
return My name is ${this._name},${this._age} years old.
}
}
let p = new Person(“jonas”,18)
console.log(p.name)//jonas
最后
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
者,这些资料都将为你打开新的学习之门!**
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!