【JavaScript】19_面向对象——封装
【摘要】 6、封装面向对象的特点:封装、继承和多态1.封装对象就是一个用来存储不同属性的容器对象不仅存储属性,还要负责数据的安全直接添加到对象中的属性,并不安全,因为它们可以被任意的修改如何确保数据的安全: 1.私有化数据- 将需要保护的数据设置为私有,只能在类内部使用 2.提供setter和getter方法来开放对数据的操作 - 属性设置私有,通过getter setter方法操作属性带...
6、封装
面向对象的特点:
封装、继承和多态
1.封装
-
对象就是一个用来存储不同属性的容器
-
对象不仅存储属性,还要负责数据的安全
-
直接添加到对象中的属性,并不安全,因为它们可以被任意的修改
-
如何确保数据的安全:
1.私有化数据
- 将需要保护的数据设置为私有,只能在类内部使用
2.提供setter和getter方法来开放对数据的操作
- 属性设置私有,通过getter setter方法操作属性带来的好处
1. 可以控制属性的读写权限
2. 可以在方法中对属性的值进行验证
-
封装主要用来保证数据的安全
-
实现封装的方式:
1.属性私有化 加#
2.通过getter和setter方法来操作属性
get 属性名(){
return this.#属性
}
set 属性名(参数){
this.#属性 = 参数
}
<script>
class Person {
#address = '花果山'// 实例使用#开头就变成了私有属性,私有属性只能在类内部访问
#name
#age
#gender
constructor(name,age,gender){
this.#name = name
this.#age = age
this.#gender = gender
}
sayHello(){
console.log(this.#name)
}
//getter方法,用来读取属性
getName(){
return this.#name
}
// setter方法,用来设置属性
setName(){
this.#name = name
}
getAge(){
return this.#age
}
setAge(age){
if(age >= 0){
this.#age = age
}
}
get gender(){
return this.#gender
}
set gender(gender){
this.#gender = gender
}
}
const p1 = new Person("孙悟空", 18, "男")
// p1.age = "hello"
// p1.getName()
p1.setAge(-11) // p1.age = 11 p1.age
// p1.setName('猪八戒')
p1.gender = "女"
console.log(p1.gender)
</script>
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)