黑马程序员技术交流社区

标题: 封装中有些属性私有后,又提供公有方法访问,求解释 [打印本页]

作者: 董志立    时间: 2015-3-16 21:52
标题: 封装中有些属性私有后,又提供公有方法访问,求解释
  1. class Person
  2. {
  3.         private int age;
  4.         public void setAge(int a){
  5.                 if(a>0&&age<130){
  6.                   age=a;
  7.                   speak();
  8.                 }else{
  9.                    System.out.println("illegal age!");
  10.                 }
  11.         }
  12.         public int getAge(){
  13.                 return age;
  14.         }
  15.         void speak(){
  16.    System.out.println("age="+age);
  17.         }
  18. }
复制代码


作者: 董志立    时间: 2015-3-16 21:53
rt,那个age先是私有,后来又提供了公有方法可以进行访问,那么封装不是没有起到封装的作用吗?求大神解释!!
作者: lwj123    时间: 2015-3-16 22:39
提供公共的方法供其他类访问该类的私有属性,这就是对该属性的封装
在设置数据时,封装对该属性的赋值做了验证,是数据更加安全。
在调用数据时,需要调用公共方法才能调用到该类私有的成员

作者: 43453186@qq.com    时间: 2015-3-16 22:45
起作用了,一是起到了验证,二你只能使用他提供的方法进行数据的存取和读取
作者: ankje    时间: 2015-3-16 23:24
用方法去控制属性,提高程序的灵活性。你就想想那些getting和setting的方法在实际开发中不可能不只是一两句代码,而是根据需求而加入一些代码。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2