主题:关于static静态变量的问题,请大虾们帮帮忙看看!!!
请看下面的程序代码:
public class gz
{
static int a = 100;//3行
static boolean b = true;//4行
public static void main(String args[])
{
gz test = new gz();
System.out.println("test.a = "+test.a);//10行
System.out.println("test.b = "+test.b);//11行
System.out.println("gz.a = "+a);//12行
System.out.println("gz.b = "+b);//13行
}
}
当我把第3、4行的标示符static删去的话,编译的时候第12、13行会报错,出现“无法从静态上下文中引用非静态变量a、b”,而第10、11行能够正常编译。同样是调用变量a、b,请问在调用时test.a、test.b与a、b(gz.a、gz.b)有什么差别么,小弟刚学习编程语言,望大虾们多多指点!!
public class gz
{
static int a = 100;//3行
static boolean b = true;//4行
public static void main(String args[])
{
gz test = new gz();
System.out.println("test.a = "+test.a);//10行
System.out.println("test.b = "+test.b);//11行
System.out.println("gz.a = "+a);//12行
System.out.println("gz.b = "+b);//13行
}
}
当我把第3、4行的标示符static删去的话,编译的时候第12、13行会报错,出现“无法从静态上下文中引用非静态变量a、b”,而第10、11行能够正常编译。同样是调用变量a、b,请问在调用时test.a、test.b与a、b(gz.a、gz.b)有什么差别么,小弟刚学习编程语言,望大虾们多多指点!!