20220720_第七小组_张红睿_Java帝国


Java封装!

​ “今天是个好日子哟,今天是个好日子! ” 一个名叫小”Student“的年轻的小类兴高采烈、蹦蹦跳跳地在帝国的板砖路上唱着欢快的歌,正巧路过一座豪华的宫殿。从未见过如此规模的小“Student”欣喜若狂地穿过宫殿大门,只见三座高高的大柱子耸立在大厅的正中间,上面分别浮现着几个清晰大字,“继承”、“多态”、“封装”,柱子上面还有一个光辉艳丽的大门匾,清晰地刻着“面向对象”三个大字!

​ “哇!好美啊~~~”,小“Student”不仅发出了赞美的声音。

​ 正当小“Student”抬头观望时,一位身着黑袍的老人突然出现在了小“Student”的身后。只见黑袍老人的袍子上被精心雕刻着“封装”两个字。老人那慈善的目光落到了小“Student”上,顿时眉头一皱。

20220720_第七小组_张红睿_Java帝国

​ ”年轻人,你的代码好像不是很好啊。“

​ 小“Student”顿时回头一看,因为这是他来到帝国首都的第一天,并不知道这位慈祥的老爷爷是谁,所以问道:

​ “老爷爷,您是?”

​ “哈哈哈~”长老笑了笑继续说,“你先不用管我是谁,你知道你的代码是有问题的吗?”

​ “什么问题,我不知道呀。”小“Student”轻声说道。

​ “小家伙,你且看着。”长老边挥动袖袍边和蔼地向小“Student”说道。随着袖袍的静止,一个主函数便展现在了控制台上。

20220720_第七小组_张红睿_Java帝国

​ “你看,我在主函数中很轻易地就更改了你的属性,而且即便不在主函数里,在其他的类中也可以很轻易的改变,而且对于个别属性的设定,还没有规范,比如这里的age,如果我输入的不是整数,那你说这可以吗?”

​ “hmm…这。”小“Student”默不作声。

20220720_第七小组_张红睿_Java帝国

​ “你看,这是我们现有的四种访问修饰符,你现在的两个属性便是默认的访问权限,这样就会导致数据不安全,而且你的子类也访问不到你的属性了。”

​ “我知道了”小“Student”边说着便拿出自己的小笔记本看了下接着说,“那我应该在前面加上private吧?”。

20220720_第七小组_张红睿_Java帝国

20220720_第七小组_张红睿_Java帝国

​ “哈哈,小家伙很聪明嘛。另外我给你两个法宝,可以在你遇到困难的时候使用。”长老说着,便消失在了宫殿大堂。

​ “好吧,老爷爷走了,那我先自己改一下吧,嘻嘻。”小Student开心并跃跃欲试的样子说道。

20220720_第七小组_张红睿_Java帝国

​ “可是,改完之后我该怎样给我的属性赋值呢?”正当小Student百思不得其解时,突然看到了长老给的一个法宝在发光。定睛一看,上面写着“getter/setter”!

​ 小Student因为不知道怎么使用,所以在首都里四处询问,几小时后,聪明的小Student终于明白他们的用法,“原来我可以对他们设置public访问属性,然后通过这两个函数进行取/赋值“。

20220720_第七小组_张红睿_Java帝国

​ 变量私有化的问题解决了,但是他又注意到,两个setter方法中多了一个自己所没有遇到过的“this”,心想这是什么有什么用呢?

​ 就在这时,那另一个法宝闪烁了起来,上面缓缓浮现出金色的单词“this“。这着实让小Student还摸不清头脑。

​ 与此同时,一座简陋的小木屋里传来了一声低沉的声音。“又有人要用到我了吗?”

​ 一段时间过后,小Student又看了看那两句经过第一件法宝施法后多出的那个单词“this”,难道凭借这种方式可以给同样命名的两个变量互相赋值嘛?就这样,揣着激动而又不解的心情小Student又开始了代码的尝试。

20220720_第七小组_张红睿_Java帝国

​ “哇!没有加this时,我的两个属性并不能被成功赋值,但是加上this后竟然成功了,好耶!这样我的源代码基本结构就很清晰很安全啦!”

​ 这时,封装长老缓缓的浮现在了小Student面前笑着说:“哈哈哈,看来你果然很聪明啊,虽然还没理解但是能做到举一反三,难得啊!既然你已经解决了这两个问题,那我来给你讲讲我的故事吧。”封装长老边说边看向那块刻有面向对象四个大字的门匾。

​ “我乃是面向对象的三大主要特征之一,在我出世以前,程序员们的代码结构还是拘泥于冗余度高、耦合性差的阶段,那段日子里每每完成项目后却总是在维护阶段耗费大量的时间。为此,随着我的父亲面向对象被那位伟人艾伦·凯提出后,我也就随着降临在这拜纳睿大陆。随着我被广泛普及,程序员们将人类世界的种种事物称为“对象”,万物皆对象。随后将对象进行分类,并以“class”命名,而后将类的属性全部放在了它的里面,并进行了访问修饰符限制,外部只能通过指定的方法比如getter来检索属性、setter来设置并可添加额外的验证规则,而后将各种函数方法总结成形形色色的可以执行单一独特的功能,这样就更方便了我们的使用,代码看上去也更加整洁、更加清晰。”

20220720_第七小组_张红睿_Java帝国

​ “原来是这样啊,我明白啦,谢谢老爷爷!”小Student开心的点头并深深地鞠了一躬。

​ “其实在那第二件法宝闪烁的时候,你的体内也已经被融入了那个人的一点能量,他总是那样的神秘,躲在暗处无私奉献。帝国历代国王JDK们想要给他赐个一官半职也被他拒绝了。他就是这样的一个怪人,哈哈哈,但是,我还是真羡慕他那不老的容颜啊。”说罢,封装长老再次凭空缓缓消失。

​ “刚刚老爷爷说的,难道就是这个吗?”小Student手指着自己面前的this说道。“好吧,虽然我现在还不明白你到底是谁,但是我能感受到你那强大的力量,但是,谢谢你啦!”说着,便向刚刚那种神秘感觉传来的方向再次鞠了一躬。并又信誓旦旦地说道,“总有一天我会明白你的。”说完后开心地朝着家的方向走去。

​ “呵呵,还真是个礼貌的小孩啊,说实话,我也好久没在大家面前露出真面目了啊,一代又一代过去了,是时候再次出来让大家知道我的存在了啊”。只见不远处站在屋顶那位头戴斗笠的人轻声说道。那人抬起手扶下斗笠的瞬间,偶然露出了那年轻俊秀的面孔,真乃绝世容颜啊!随着斗笠的扶好,消失在了茫茫苍穹…

原创文章,作者:carmelaweatherly,如若转载,请注明出处:https://blog.ytso.com/275779.html

(0)
上一篇 2022年7月21日
下一篇 2022年7月21日

相关推荐

发表回复

登录后才能评论