一般会把属性设置为private的,然后通过get,set方法进行访问和设置,这样做主要是后面如果在取值或赋值之前做一些处理,可以在get,set方法里面进行处理,这样就封装逻辑处理。

解决方案 »

  1.   

    看要求,如果是简单的属性,对属性的设置都是直接赋值,不需要检查例如参数的合法性,直接public就好了,省事,懒得写那么多setter, getter。
    个人觉得没必要所有的属性都写个setter, getter。
    不过话说回来,实际项目中 Java Bean 的属性都会设置成private, 然后写setter, getter,按规范写,因为都不用自己手写代码,IDE 直接生成了,何乐而不为,也免得让人说不专业对吧。
      

  2.   

    OOD面向对象的设计可不是因为你的一个类中内容太多了就分到别的类中去。类的设计是要有意义的,需要分类的时候就分成多个类。类的三大特征封装、继承、多态中的封装就要求属性最好是private控制修饰符的属性,这样每个类的属性对彼此相当于是隐藏的,别的类就没有权限直接修改其他类中定义的属性,只能通过类中定义的公共方法修改其中的属性。说了一大堆,希望lz好自为之.
      

  3.   

    public的变量容易被其他程序的代码给修改了。一般变量还是定义成private比较好,只有给其他类用的才设置成public
      

  4.   

    如果从被修改的难易程序来说,obj.attr = 10与obj.setAttr(10)有什么区别?没区别。
    所以这个说法不对。
      

  5.   

    如果从被修改的难易程序来说,obj.attr = 10与obj.setAttr(10)有什么区别?没区别。
    所以这个说法不对。但是如果不想让其他类修改的话,private变量可以不写set方法呀。而public类型的变量还是能修改的啦。
      

  6.   

    建立一个父类,所有分拆出来的类都继承这个父类,把所有子类都需要用到的对象定义到父类里面去,并把这些对象的访问修饰符定义为public或者protected,如果只是子类用到那么建议定义为protected. 这是一种解决方法。
    另外,关于访问修饰符的定义和权限,基础你需要温习一下。
      

  7.   

    其实看一看java的源码你就大概理解其重要性了,比如arraylist 里有size 这个属性,get的话也就是size() ,这个size关系到你add 的index,还有很多重要的方法,如果设成public让人随便改不就乱套了吗,所以用private,和一个getter 的method,让你只能看不能摸。
    也就是 private其实是对别的程序对一种约束。
      

  8.   

    public 你写在类里面就可以直接通过实例对象来更改了。这样不安全
      

  9.   

    get set并非强制的,该设置为public就public,不需要都用所谓的get set方法。
      

  10.   

    存在安全隐患,所以尽量属性private
      

  11.   

    public本身是没问题的,就看代码逻辑
      

  12.   

    public只能适当使用,不要泛滥,否则就像你把钥匙插在你家门上了。谁来都可以开门
      

  13.   

    我想了几种解决方案   楼主可以参考一下
    构造一个类  将通用变量放在里面做属性  分类出来小类做内部类   就是构造内部类麻烦点  
    更好的方法是将所有通用变量抽象成一个新的类 对通用变量进行封装  通过get set方法调用 如果变量唯一  还可以将类做成单例模式  
    通常构造类都要遵守  高内聚  低耦合的观念  public用多了 会提高耦合度 不建议采用
      

  14.   

    大工程中public变量满天飞简直就是恶魔,我目前公司游戏服务器代码近100万行,到处都是public变量,每次维护起来心中都是万头草泥马。