写法一:
public class Test{
   private static final String aa = "test";
   ...
}
写法二:
public class Test{
   private final String aa= "test";
   ...
}
两种写法区别是第一种多了个static,其它都一样,我认为第一种写法这个static是多余的,完全没必要.
理由是:
static是静态修饰符,只对public时才有意义,如类方法定义时static是少不了的,对于属性定义也是一样的,
既然是private,何必再来个static呢?
但最近看了些其它人写的例子,常见有人用第一种写法,很是不解,难度我的理解有误?附:写不写不影响功能,如接口是可写可不写public的,只是我觉得写了没什么用,所以不写.

解决方案 »

  1.   

    private和public是修饰变量的访问权限的,或者说作用域。static是修饰变量存储属性的,如果是静态变量,那么每个类有一个,如果是非static成员变量,每个对象有一个,这就是区别。至于是否要public出来,那得看这个变量的用途和使用方法,比如虽然声明称private static但我依然有可能使用方法调用,或者protected调用之后继承给子类。
      

  2.   

    如果修饰符为private的,对该类本身来说,如果该类的某个static方法用到该属性,还是有区别的吧。
      

  3.   

    问题是:我这个类内没有静态方法使用它,那这样加上static算多余的吧?不好意思,更改下我的结论:
    加上这个有时是多余的,有时是必需的,如果是private的时候.
    我主要是说,第一个有时的时候,是多余的,应该没问题吧?
      

  4.   

    楼上别晕呀,反正我那个类中不加static不影响功能的,我就不加了,呵
    这个问题与另一个类似,如定义了final的类,那其它的方法中,再加下final是不是多余的呢?
    相信楼上的回答了我现在这个问题,就明白我的意思了,也就不会晕了,呵呵
      

  5.   

    当然知道了,有静态方法时,若引用那个属性,则此时必需有static了,而我没有静态方法中引用了,那当然就可加可不加了,我的回复不是写得很清楚了么?问题是:我这个类内没有静态方法使用它,那这样加上static算多余的吧?
      

  6.   

    呵,还是你明白我的意思啊,不过我还要钻下牛角尖,其实这样可能还是有区别的的,注意,我是说,可能.
    理由是:多加了static,与不加它,在内类中位置一样么?存储形态就没什么区别么?(仅管功能无区别)性能也完全一样吗?等等等等
    这样也确实就太钻了啊,呵,我自已都觉得自已有时真的是挺砖的,这个不讨论吧,超出范围了.我也没研究它,只是猜测....
      

  7.   

    性能上却时一样。。
    Thinking in java 上说的。
      

  8.   

    they (指你说的两种)
    can both be used as compile-time constants and are not different in any important way.