Java学习知识点要求(13)18、局部变量没有赋值不能使用,final变量只能在定义时赋值或者是在构造方法中赋值,且只能赋值一次。/ h: I8 C% R8 [4 B Y0 t% Q! g
(1)局部变量是定义在语句块,方法内的变量。 1 v/ F8 l' G% S" Q' J: C0 N" ^4 I
局部变量:随时定义随时使用。, q n! r6 b. b! y x W
这种变量的作用域是它所在的一个封闭的程序块,仅在定义该变量的语句块或方法内有效,比如在循环语句的循环体内定义的变量就是局部变量。 2 x9 D* s2 b/ t
若某一局部变量和实例变量或类变量同名,则该实例变量或类变量在方法体内被暂时屏蔽,只有退出该方法时,实例变量或类变量才起作用。
* ^* X* M, p, P: O' }) Y(2)final类的语法如下:
; `1 K% ?" E' B9 z$ ^final 类名{}
# e4 r7 r1 i) b* Q, T7 n( hfinal修饰符可以定义一个不能被继承的类,即不能再有子类。Java.1ang.System类就是final类的一个例子,它是最终的类。
, t: w$ `! z% tfinal关键字可以用于变量声明,一旦该变量被设定后,就不可以再改变该变量的值。 6 Q$ x: i0 k( p6 d, q& a
例:final double PI=3.14; static final ' ~$ K6 T( O9 R0 d1 y2 O9 E( e" h
在Java中定义全局常量,通常使用public static final修饰,这样的常量只能在定义时被赋值。
# x+ }; C6 s, `. |4 Z! @' qfinal方法
# K: y% y' `; _. w7 C' M* u如果一个类不允许其子类覆盖某个方法,则可以把这个方法声明为final方法。
0 U" a( Z5 d$ R( q! q使用final方法的原因有二:
& N# ]1 r% ?. }6 I$ O5 T2 M第一、把方法锁定,防止任何继承类修改它的意义和实现。 % t _0 T; o; Q, o; i7 h1 h* L, y. [
第二、高效。编译器在遇到调用final方法时候会转入内嵌机制,大大提高执行效率。 |