文章目录
- 1. 抛出问题:存在安全隐患
- 2. 那咋办呢?
- 3. 上述方案行不通,只能引入封装的概念
- ① public向private过渡
- ② 这种情况下如何修改信息,使用get和set方法
- 如何限制用户输入
- 企业中为什么不用public
- 快捷键生成所有私有成员变量的get和set方法
- 4. public与private
- 5. 封装的概念
- 6. 内容出处
1. 抛出问题:存在安全隐患
张大爷注销账户时说了:你的程序不安全。我就不小心按了个减号,我家狗的年龄就变成-30岁了。你的程序不行啊,狗的年龄怎么可能是-30岁,但是你的程序就这么水灵灵给我通过了?而且,为什么王阿姨都能改我家狗的信息?
2. 那咋办呢?
总不能写成这样吧,这样写就不符合面向对象的设计思维了。这里面只能操作对象。
3. 上述方案行不通,只能引入封装的概念
① public向private过渡
我们要改只能改设计里的东西,即Dogs类里的东西。简单来说就是,把该类成员变量前面的public(公有的)全部改成private(私密的)。
改完之后我们可以发现,不能像之前那样随意修改狗的信息了
② 这种情况下如何修改信息,使用get和set方法
总之,我们要提供给用户一个能设置和获取信息的入口,但不能允许用户瞎搞。------- 借助get和set方法(说白了就是自己写两个函数)
如何限制用户输入
怎么限制用户输入呢?只需要在setAge()里增加限制条件
企业中为什么不用public
使用public的话,用户就可以为所欲为,这是很危险的。
例如:
hh这个人申请了一个支付宝账户,你给整个public double balance。那他自己都可以修改自己的账户余额了,那他还上啥班啊。再者说,用户自己都可以修改余额了,阿里还干不干了。
这个时候肯定只能用private了呀,用这种方式就可以避免用户的不合法输入,甚至可以对输入数据做出检查。例如:下述的支付宝余额检查
快捷键生成所有私有成员变量的get和set方法
4. public与private
5. 封装的概念
出于安全的考虑,我们用private代替public成员变量的特性,我们还另外提供 Getter 和 Setter , 这种方式叫作 OOP的封装。
封装就是把这些成员变量给包装起来方便别人使用,但是又不能提供过高的权限,防止出现安全问题。封装是面向对象的一个重要特性。
6. 内容出处
java