为了让你不可能在想要 get 的时候(不小心,恶意) set

解决方案 »

  1.   

    使其看起来更加面向对象,而不是面向结构体,
    最重要的是,getxxx()方法里有很多的处理,比如你有没有权限得到这个变量。
      

  2.   

    在get和set的过程中你可以控制,譬如合法性检查啊之类的,或者控制只让set不让get或者相反,
    当然,你不set和get也可以,直接存取也可以,只不过没有特别的理由,最好不要这样
      

  3.   

    Objectname.xxx 读取变量,则要求该变量是static
      

  4.   

    回  shihuash11(ssh) 
    :)你应该理解错楼主的意思了,
    你看看名字是Objectname而非Classname啊
    只不过习惯上变量命名以小写开头
      

  5.   

    一个object里面有变量,难道这个object不是一个类的实例吗?
    不然这个object是什么?
      

  6.   

    1、为了更好的封装!
    如果你定义的xxx是私有变量。那么你只能用类的方法访问他!
    objectname.xxx是不允许的。
      

  7.   

    to shihuash11(ssh) :
    Objectname是某个类的实体,但是想引用其成员也没有必要一定要static的呀?
      

  8.   

    一种数据保护的手段,只允许有权限的人(public protected or private)进行受控的操作
      

  9.   

    请教“takecare(大厅) ( ) ”
    请举一个例子,直接引用它类非static成员。jsp中的bean就不用举了。
      

  10.   

    我也觉得主要是为了控制访问。有时类变量要设置为只读,这时就可以只提供一个get方法而不提供set方法。这点我建议大家和c#对比一下,c#在类变量访问上做得比java先进。c#把get和set作为关键字,专门用来控制对类变量的访问,例如:
    public class test{
      public string a{
        get{
           return "get";
        }
      }
    }
    而使用的时候可以直接读a:string temp = testobj.a;//temp = "get"
    但不能直接修改a:testobj.a = "set";//抛出异常java 虽然没有get,set关键字,但通过方法也实现了其功能。
      

  11.   

    To shihuash11(ssh) 
    请教“takecare(大厅) ( ) ”
    请举一个例子,直接引用它类非static成员。jsp中的bean就不用举了。
     
    为什么不可以呢?将属性的访问权限弄成public不就行了
      

  12.   

    基于以下几点原因:
    1. 更好的封装性。
    2. 更好的维护性。
    3. 更大的灵活性。另外,to:楼上,考虑下这3点,就知道为什么不要把属性设置为public了。
      

  13.   

    当然也不是一定要用set/get,譬如如果你的属性是一个immutable,
    那么将其声明为public final更好啊
    根据实际情况决定吧