为了账号安全,请及时绑定邮箱和手机立即绑定

我想请问关于封装的问题

我想请问关于封装的问题

hy_wang 2017-07-19 18:45:52
java中使用private封装属性,可是在另一个方法中使用输出的时候明明输出语句中没有成员变量只有对象名.getABC。可是确输出了重新赋值的成员变量,有点钻牛角尖。请问大家关于封装是不是说要调用封装的信息时候,重新赋值或者输出不能直接在代码中出现直接的成员变量名,而是必须得使用getter和setter进行调用方法?是这个意思吗?如果不对,请大神们改正
查看完整描述

3 回答

?
精慕门9254224

TA贡献167条经验 获得超46个赞

private 修饰属性用于保护数据,getter 和setter 只是对外暴露的可以访问到数据的方法而已,如果该数据不希望外界赋值,可以不设置setter 方法的,如果该数据不希望外界得到也可以不设置getter 方法,如果该数据的设置有一些条件的话,可以在setter 方法中设定条件!比如幼儿园收小朋友,只有小于六岁的儿童才可以进幼儿园,就可以在setter 里加入age 小于等于6才能设定!

查看完整回答
反对 回复 2017-07-19
  • hy_wang
    hy_wang
    我想请问为什么输出语句中没有封装的变量时,但使用get 方法确输出了封装的变量。也就是说get方法当调用他输出的时候也就是输出他里边得内容是吗
  • 精慕门9254224
    精慕门9254224
    一个对象的输出一般都是通过toString方法输出他内部的属性的,重写toString方法时,把需要输出的属性写进去,不需要输出的属性不写进去就可以了,输出与getter 无关,如果想要单独输出对象的某个属性,才会先用getter 把他取出来,然后再输出!
  • hy_wang
    hy_wang
    我的意思是说为什么在别的类调用封装属性的时候,她的输出语句 SySTEMout.print里边并没有这个属性变量。而是对象名.get方法就输出了这个属性变量。这个是不是一个对于其他类调用封装的规定?
点击展开后面1
?
梦影剑魂

TA贡献66条经验 获得超21个赞

对属性的封装就是让其他类不能对该类的成员变量直接赋值,只能通过该对象的getter和setter方法,从而保证成员变量的安全性。个人理解

查看完整回答
反对 回复 2017-07-19
  • 3 回答
  • 0 关注
  • 1568 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信