class A{ int n = 10; public void m(){ int a = 1;//在JDK1.8中,默认添加final---->final int a = 1; 所以在15行可以访问 class B{ public void method(){ System.out.println(n); System.out.println(a); } } // a++;//error 因为第15行已经把a当成是常量使用了,所以在这里再写a++,在没有写final int a = 1;时,第15行会报错 } } class C{ int n = 10; public void m(){ final int a = 1;//主动添加final后 class B{ public void method(){ System.out.println(n); System.out.println(a); } } // a++;//error 因为第15行a是常量,所以在这里再写a++,会报错,因为a的值无法改变 } }