该用户从未签到
|
沙发
发表于 2015-04-04 11:28:55
|只看该作者
答案:不能访问局部的,可以访问成员变量(全局的)。( z) [& L2 b! l5 W8 K, d7 X
class Out m9 N- O5 S' g6 [( s6 T
{5 r5 c k+ W/ l2 t3 \- `
private String name = “out.name”;6 S, Q0 @! s1 X( `% R& `! `% A( A
void print()% Z$ v6 L) j8 c0 H% D3 i
{- p3 d# Y" m5 V. X( a, u
final String work = “out.local.work”;//若不是final的则不能被Animal 使用.
. M0 H( p7 t& U. a- Jint age=10;
: y2 D; G/ ?% x5 B' Xclass Animal
0 Y& i8 N# X. H9 {4 y. ]" Y//定义一个局部内部类.只能在print()方法中使用.
w* S/ b9 H7 K. F/ y4 m//局部类中不能使用外部的非final的局部变量.全局的可以.
3 Y: |1 K/ T+ h6 N' E{
1 _" {( `: D; Y/ jpublic void eat()3 M/ f4 q0 d2 S0 w3 t
{$ E( S+ q5 E* w) Y. t- K
System.out.println(work);//ok: X1 ?$ m L/ S- r' v
//age=20;error not final
$ J# ?/ d3 y! y7 F9 m @' V, tSystem.out.println(name);//ok.
5 X4 N4 d5 u$ B B4 _8 _( A}' Y. E3 Y# z: b' P; N; S3 T( }
}
' N7 V6 B. Z5 j) ^Animal local = new Animal();3 G) q7 e2 D9 q1 M
local.eat();
N5 ^/ V( M; Y5 n( f4 J: s R% X}
% V J; i0 P3 K5 {- L' r} |
|