那这样为什么不行呢 public class TestStatic { int i = 0; static int j = 2; public static void main(String[] args) { int j=1; System.out.println(TestStatic.test1().s); }
public static int test1() { int s=5; return 0; } }
不会吧?静态方法里定义的变量就是静态的? public class TestStatic { int i = 0; static int j = 2; public static void main(String[] args) { int j=1; System.out.println(TestStatic.test1().s); }
public static int test1() { int s=5; return 0; } } 上面那位兄弟的这个程序是明显不能运行的撒,解释一下?
public class TestStatic
{
int i = 0;
static int j = 2;
public static void main(String[] args)
{
int j=1;
System.out.println(TestStatic.test1().s);
}
public static int test1()
{
int s=5;
return 0;
}
}
静态方法里的变量是临时变量,只在静态方法里有效。而声明STATIC表示该变量属于类。所以不能声明为STATIC。
public class TestStatic
{
int i = 0;
static int j = 2;
public static void main(String[] args)
{
int j=1;
System.out.println(TestStatic.test1().s);
}
public static int test1()
{
int s=5;
return 0;
}
}
上面那位兄弟的这个程序是明显不能运行的撒,解释一下?
什么是类呢?把一些对象共有特征(属性或者数据成员)和行为(方法)抽象归纳起来,定义一下,取个名字,这就是类的基本含义了。既然是所有这一类对象共有东东,为什么非要创建对象才能调用了,麻烦哦,于是JAVA直接用(类名.方法)、(类名.数据成员)的形式就可以调用。也就是大家常说的,静态域相当于C语言的全局变量.既然加了static的变量是类一级数据成员,有什么理由放在一个方法里面。方法里面的应该是局部的只有本方法才会用的,在方法里面声明一个类一级的数据成员有何意义了,相反,对以后代码的查错和再读都不利。所以JAVA不允许这样做
要提醒一下,不仅静成方法中不能声明静态数据成员,就算不是静态方法,其中照样不能声明静态数据成员。道理是一样的。
不知道风中沙是怎么混到CSDN中的四级的,尽然说什么静态方法中定义的变量就是静态的了!不懂不要装懂!害人害已!