package com.initblock;public class Test1
{
//(2)
{
a = 10;
//(1) System.out.println("a = " + a);
} int a = 9;
public static void main(String[] args)
{
System.out.println(new Test1().a);
}
}问题1 :为什么将(1)处代码去注释会报未定义前访问变量a的错误,但是上面一句的a=10又可以访问变量a ?
问题2 : 为什么将 int a = 9;移到(2)处就不会报任何错误,可以正常运行?
{
//(2)
{
a = 10;
//(1) System.out.println("a = " + a);
} int a = 9;
public static void main(String[] args)
{
System.out.println(new Test1().a);
}
}问题1 :为什么将(1)处代码去注释会报未定义前访问变量a的错误,但是上面一句的a=10又可以访问变量a ?
问题2 : 为什么将 int a = 9;移到(2)处就不会报任何错误,可以正常运行?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货