黑马程序员技术交流社区

标题: 一个小问题 [打印本页]

作者: 胡文彬    时间: 2014-3-13 16:58
标题: 一个小问题
final 关键字有什么作用呢
作者: chen20134    时间: 2014-3-13 17:02
final 放在类前面
  如果某个类在定义时,前面有修饰词final,则该类不能被继承
final 放在属性前面
  属性声明时,如果前面有修饰词final关键字,则该属性值不能被更改,即此时该属性为常量
final放在方法前面
  如果某个方法在定义时,前面有修饰词final,该方法可以被调用,不能重写
作者: 文江江    时间: 2014-3-13 17:22
final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。
内部类要访问局部变量,局部变量必须定义成final类型,例如:
  1. public class LocalInnerClass {  
  2.     private String local = "local";  
  3.     public void test()  
  4.     {  
  5.         String name = "abc";  
  6.         final String finalName = "final name";  
  7.         //局部变量前面是不可以加权限控制符的,也不能用static修饰。  
  8.         //但是可以用final修饰,用来确保这个变量的值不会发生改变。  
  9.         //所以如果局部类要访问带修饰的局部变量,只能访问用final修饰的局部变量。但是局部类可以访问外部类的所有成员,包括成员变量。  
  10.         //此类为局部类  
  11.         //局部类不需要加public,private修饰符,因为这方法执行完 这类就消失了  
  12.         class LocalClass{  
  13.               
  14.             public void testLocal()  
  15.             {  
  16.                 test2();//可以访问外部类的所有成员变量和成员方法  
  17.                 System.out.println("The memeber variable is " + local);  
  18.                 System.out.println("The local variable is " + finalName);  
  19.             }  
  20.         }  
  21.         new LocalClass().testLocal();  
  22.     }  
  23.       
  24.     public void test2()  
  25.     {  
  26.          
  27.     }  
  28. }  
复制代码

作者: 黄飞1991    时间: 2014-3-13 17:36
final:
1,修饰类,变量(成员变量,静态变量,局部变量),函数。
2,修饰的类不可以被继承。
3,修饰的函数不可以被覆盖。
4,修饰的变量是一个常量,只能赋值一次。
5,  内部类要访问局部变量时,局部变量必须定义成final类型。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2