小弟我有个问题就是类中set、get方法是不是破坏了类的封装呢,一个类中的私有成员能够随意的用set方法对其修改,是不是违反了类的封装性呢

解决方案 »

  1.   

    没有。
    setter/getter你可以自己施加控制,再说你也不是什么field都要给各setter/getter的。
      

  2.   

    set/get器 就是用来“得到值”和“设置值”的而已。
      

  3.   

    除了不是每个属性都设get/set方法外,也可以改get/set方法加相应的修饰符来限制外部的其的访问
      

  4.   

    自身类中的private 属性 就是通过 自身类中的public set 和 get方法来进行数据的封装
      

  5.   

    其实就是javabean的属性的访问权限控制,楼主看看这方面的东西
      

  6.   

    封装的意义就是不能让人随便的去更改。可是我总觉得set 方法从某种意义上说破坏了其封装性
      

  7.   

    你可以看看这些属性是什么,都是private的属性就是说,除了他自己可以访问以外,别的类是访问不了的,所以get是由创建他这个类的实例来调用的
      

  8.   

    对呀,你能通过set添加bean吗?真是
      

  9.   


    public class Test {
    String s = "小强"; public static void main(String[] args) {
    System.out.println(new test2().s);
    }
    }class Test2 extends Test {}
    看了这个例子你就明白了
    如果属性不是private 是会被继承下来的
    而且set get可以控制访问形式
      

  10.   

    sorry 打太快 有个地方打错了
    main()方法里的test2的T应该是大写
      

  11.   

    封装是指类将自己的成员和方法组织到一起,以方便使用和维护,并不是指不让修改自己的属性值.
    set方法虽然能改变私有成员的值,但也是自己的实例才能调用,其他类的实例是无法调用的,
    因此谈不上破坏封装性.
      

  12.   

    封装是指类将自己的成员和方法组织到一起,以方便使用和维护,并不是指不让修改自己的属性值.
    set方法虽然能改变私有成员的值,但也是自己的实例才能调用,其他类的实例是无法调用的,
    因此谈不上破坏封装性.
      

  13.   

    如果想封装程度更高一些,可以把 set 方法设为 private, protected 或者是没有修饰。
    这样做的话,一般是针对一些只读属性。
      

  14.   

    这个不会破坏封装,其实  get set只是向外界提供了一个接口,外界要通过这个接口才能访问到这个属性。比如 类A的一个对象是a 那么加入age是他的一个属性 其为private那么a.age这样是非法的 因为age是private只能被类的其他对象访问 ,所以通过get set方法 才能通过这个对象访问到他的属性age 比如a.setage a.getage 所以 这样不会破坏对象的封装
      

  15.   

    set 方法确实可以修改类的属性
    不过你要知道如果不留一个公共接口给外界调用的话
    那这个类就没有意义了