import java.util.*;
class TryRandom
{ Random rand=new Random();
public static void main(String [] args)
{ int [] a;
int i=rand.nextInt(20);
System.out.println("i is:"+i);
a=new int[i];
System.out.println("length of a = " + a.length);
}
}
报错是:TryRandom.java:6: 无法从静态上下文中引用非静态 变量 rand
int i=rand.nextInt(20);
我想问的是:1,“int i=rand.nextInt(20);”怎么成了静态上下文了?
2,我在“Random rand=new Random();”前加了static后就没事了,这又怎么解释?我知道这儿的根本原因是int i=rand.nextInt(20);为静态上下文。
请大家帮俺看看……
小弟感激不尽
class TryRandom
{ Random rand=new Random();
public static void main(String [] args)
{ int [] a;
int i=rand.nextInt(20);
System.out.println("i is:"+i);
a=new int[i];
System.out.println("length of a = " + a.length);
}
}
报错是:TryRandom.java:6: 无法从静态上下文中引用非静态 变量 rand
int i=rand.nextInt(20);
我想问的是:1,“int i=rand.nextInt(20);”怎么成了静态上下文了?
2,我在“Random rand=new Random();”前加了static后就没事了,这又怎么解释?我知道这儿的根本原因是int i=rand.nextInt(20);为静态上下文。
请大家帮俺看看……
小弟感激不尽
是在main方法里的而main方法本来是静态的
所以int i=rand.nextInt(20);实在静态调用的静态方法只可以调用静态变量
class TryRandom
{ Random rand=new Random();
public static void main(String [] args)
{ int [] a;
int i=new TryRandom().rand.nextInt(20);
System.out.println("i is:"+i);
a=new int[i];
System.out.println("length of a = " + a.length);
}
}
import java.util.*;
class TryRandom
{
public static void main(String [] args)
{
Random rand = new Random();
int [] a;
int i = rand.nextInt(20);
System.out.println("i is:"+i);
a=new int[i];
System.out.println("length of a = " + a.length);
}
}静态函数中不能使用非静态属性和方法,因为它们没有this引用;
静态方法不能引用变量 你的RAND 是个变量