java -谈谈我对面向对象的理解,private的意义

万物皆对象,在我们生活中,一个水杯,一个枕头,都可以把它当做一个对象.

java面向对象有三个特性,封装,继承,多态,如果再加一个,那就是抽象

我们来举个例子

我是上帝,我要开始造人了,我会先想,人是由什么构成的? 好了,我知道了,人是由灵魂和肉体构成的(抽象就相当于定义了模板)

我想好了用什么来构成人,那我就开始造人了,我造着造着发现,太多了,我造着很累,每次都要一个一个来造,那么我自己就做了一个机器,我把造人这个方法放入机器中包裹起来(安全private),让机器来造人,我只需要用这个机器就可以了(封装封装不一定安全,我们等下来说),

造着造着我还是觉得很累,我觉得我不能自己用这个机器造了,我得让我自己造的人去使用这个机器,这样我就不用干活了,我就轻松了,于是我就让我造的人去使用
这个机器去造新的人(继承)

由于我造人的时候让他们有了灵魂,有了思想,于是我发现他们造人的时候造出了很多不一样的人,有的是黄种人,有的是白种人,还有的是黑人(他们本质上都是人)(多态),但是我的机器设置的只能造黄种人,他们为什么就可以造出黑人和白人呢?我知道了,他修改了机器(破坏封装 java中的反射)于是就出现了各种各样的人.

这就是java的封装.继承.多态.抽象.

又来了个问题,既然private并不能保证绝对安全,那么private的意义是什么

继续举个例子,
某岛国的boss管理着他的国家,有一个人用着特别顺手,boss让它做了除了自己意外最大的官,还给了他兵权(private没人能管他,只有自己能管),但是这个人不爽啊,你什么事情都让我来做官还比我大,还管着我,我不服,然后他就开始各种各样搞事情了,于是boss知道了,他也不爽了,你整天在那里搞事情,国家都乱了,但是bosos也没办法直接去把这个人拿掉,因为很多事情还要靠他来完成,他还有兵权,动不了他,于是boss在国家法律上增加了一条,黑社会的合法化(反射),有意思了,boss想,我不搞你,但是我可以找人来搞你,然后boss就让黑社会去修理这个人,威胁他之类得,然后这个人就听话了,他也不调皮了,一直给boss安静的做事

这个例子比较简单,我们可以看出,反射可以破坏封装,private只可以在一定程度下保证安全,反射的作用就是获取一些成员的属性方法,包括私有的,在我们实际的使用过程中是很灵活的

猜你喜欢

转载自blog.csdn.net/qq_43513205/article/details/88567491