面向对象中封装的认识-乐鱼下载

2022年中国变频器行业重点企业洞析:英威腾vs伟创电气「图」一个宿舍三个“大肚子”,职高女生开玩笑过了火,家长颜面尽失

面向对象中封装的认识

今天在班上讲了封装,对象又是中封装元气满满的一个周末。二话不说,认识还是对象要化繁为简,这节的中封装目的是整明白啥叫封装!首先看一眼百度百科上封装的认识定义:

讲道理,看到这样的对象描述,我的中封装人是崩溃的

首先用一个案例引入,那就是认识女性年龄这事,一般非妙龄少女的对象年龄,是中封装不想让人知道的,比如我!认识首先创建一个girl类:publicclassgirl{ intage;}然后写一个测试类:publicclasstest

{ publicstaticvoidmain(string[]args){ girlg=newgirl();g.age=36;}}上来你就给我来个36岁,对象这是中封装跟sei俩呢!我拒绝!认识!那么问题来了,咋拒绝?不想让你随意糟蹋我的年龄。

解决:在age属性前加上一个修饰符private:publicclassgirl{ privateintage;}那么测试类中,立马就报错了:

目的达到了,我这个age对你来说访问不到了!那么,此时,你该理解了,我这个age属性,对你来说,已经封装起来了,但是效果不好,为啥呢?因为对你哪些不礼貌的人,我确实需要隐藏我的年龄,但是在一些必要的场合,age这个属性也必须要提供给你用,怎么办呢?解决办法:你对我的年龄,无非就是设置值,读取值操作,那么我就给你提供俩方法,让你通过这两个方法访问到我的年龄。

publicclassgirl{ privateintage;//设置年龄的值 publicvoidshezhiage(intage){ this.age=age;}//读取年龄的值 publicintduquage

(){ returnage;}}这样你访问的时候,就可以按照下面方式访问了:publicclasstest{ publicstaticvoidmain(string[]args){ girlg=newgirl

();//对年龄设置值: g.shezhiage(20);//美美哒20岁 //读取年龄的值: system.out.println(g.duquage());}}这种方式,达到了设置,读取的目的,那么问题来了,你现在再说我是36岁可以吗?可以试一下,36岁,依旧可以设置读取。

publicclasstest{ publicstaticvoidmain(string[]args){ girlg=newgirl();//对年龄设置值: g.shezhiage(36);//我老了 //读取年龄的值:

system.out.println(g.duquage());}}恩?可以设置读取???那折腾这么多干嘛?答:之所以这样做,是因为,这个设置读取的方法是我给你提供的,那么既然是我提供的,我怎么写就是我的事了!那么我就可以加限制了!我将其中的设置年龄的方法改为:

//设置年龄的值 publicvoidshezhiage(intage){ if(age>=30){ this.age=18;}else{ this.age=age;}}加了上面的限制,你再问是不是36岁的时候 ,那么返回的值就是18了!

那么上面,我们完成了对age属性的封装,终于明白 ,啥叫封装了总结一句话,你访问的有限制,不随意,对你来说,都是封装!那么在实际写代码过程中,我们对于上述的两个设置值,读取值的方法,我们一般都定义为set,get方法:。

public class girl { private int age; //设置年龄的值 public void setage(int age) { if(age>=30){ this.age=18; }else{ this.age = age; } } //读取年龄的值 public int getage() { return age; } }

另外说一嘴,有些人常说,private就是封装这句话是错误的上面我们虽然用到了private,但是private只是我们加的一个修饰符,只是用来控制权限的其中一种方式而已,稍后有机会我再更新java中的权限修饰符!bye~。

乐鱼下载-乐鱼app官方网站入口
网站地图