package test;public interface TestInterface {
  int GOOD = 1;
  int BAD = 0;
}
import test.TestInterface;class T implements TestInterface{
  public static void main(String args[]) {
    System.out.println(GOOD+1);
  }
}写出运行结果,并给出解释

解决方案 »

  1.   

    2public static final 是接口属性的固定修饰符。
      

  2.   

    2.                           
    GOOD是T中的常量。
      

  3.   

    2package test;public interface TestInterface { int GOOD = 1;  //接口中声明的成员即便不加修饰符
    int BAD = 0;   //它也是 public static final 的}import test.TestInterface;class T implements TestInterface { //T 实现了 TestInterface 接口,同时也获得了接口中定义的常量 GOOD 和 BAD
    //就好像 GOOD 和 BAD 是在 T 中定义的一样,Java 类库中为了省事经常这样做 public static void main(String args[]) {
    //同一类中静态方法访问自己的静态域不用类名作限定
    System.out.println(GOOD + 1);
    }}
      

  4.   

    2借口中的任何域都自动是 static和final ,也因为如此,接口成为了一种很便捷的用来创建常量的工具。
      

  5.   

    没有改变final值的代码啊?GOOD+1是应用,又不修改。
      

  6.   

    这个就应该是2阿。
    并不是改变GOOD这个变量的值阿。二是把GOOD加1然后打印出来
      

  7.   

    2接口中定义的成员变量实际上就是一个常量,为public static final的.
      

  8.   

    实现接口的类总会拥有接口里定义的所有变量,而接口里的变量默认的总是public static final,其实也就是常量了,所以结果是1+1=2。
      

  9.   

    good的值没变,只是你是将它加1来输出的。
      

  10.   


    class T implements TestInterface{
      public static void main(String args[]) {
        GOOD = GOOD + 1;
        System.out.println(GOOD);//结果还是1,这样就明白了吧?
      }
    }