rt,听说声明为public安全性不够好,但有get,set方法不也一样吗?高手解惑!

解决方案 »

  1.   

    一般来说设为属性(set,get)要地道一些,首先你在赋值或取值的时候可能会作一些业务相关的检查和判断,也可能进行一些内部的操作,不过这些操作在外面看起来都是透明的。不过如果你确定不需要这样的操作,也可以直接把成员声明为public,毕竟这样效率还高一些(没有方法的调用)。
      

  2.   

    get set可以对输入数据进行验证
      

  3.   

    public可以乱访问,乱输入,而用属性你可以把握未来,可以对赋入的值进行检查,比如有的数值运算,如果调用的时候输入了abc等字符串,你就可以在程序中把关.可以控制输入输出,这就是封装的最基本的好处.
      

  4.   

    如果直接声明为public
    就破坏了面向对象的规则
    任何代码都可以改变成员变量
    不安全
      

  5.   

    楼上基本上说出来了,补充一点:
    面向对象编程的一个规则是:使用户只需要指定对象能做什么,而不需要去指定或者了解对象是如何完成该工作的。属性是对象内部的数据,用户如果能够直接访问对象内部数据,显然就违反了上述规则。
    (这也有点类似Windows系统对内存的保护,可以通过API来操作,但不推荐直接访问内存,那样就可能把内存搞乱了。)通过get和set访问器来访问,就保持了这种规则,而且还提供了额外的功能,如对值进行检查,实现只读或只写属性等。