错误案例一:
public class exe1
{
static int i=10;
int k=3;
public static void main(String[] args)
{
k=5;
System.out.println("i="+i);
System.out.println("k="+k);
}
}
报错为,k应该为静态;静态方法操作动态变量既是main里面不能调用类里的非static变量;因为main函数作为程序的入口,一般都是最先分配内存,最先执行的,如果调用非静态的方法和变量,则非静态的方法还没有被初始化,即在内存中还没有则必然会报错;
错误2
public class exe1
{
public static void main(String[] args)
{
{
int i=3;
int k=5;
System.out.println(i);
System.out.println(k);
}
System.out.println(i);
System.out.println(k);
}
}
报错为,没有实例变量i,k,i和k被{}包围,为局部变量,仅在局部代码块中有意义;
public static void main(String[] args)
{
int i=3;
int k=5;
System.out.println(i);
System.out.println(k);
}
为正确代码;
public static void main(String[] args)
{
static int i=3;
static int k=5;//无法实现上述声明,声明不合法;
System.out.println(i);
System.out.println(k);
}