不能在static方法中调用非static方法

来源:百度知道 编辑:UC知道 时间:2024/06/28 07:22:49
请各位前辈帮忙看看,指导下。我刚学。
不能在static方法中调用非static方法。我想调用setvalue方法的话该如何呢?

public class multiarraytest
{
boolean b;
public static void main(String args[])
{
setvalue(2,3,'A');
setvalue(3,5,'B'); // 就是这里的调用出问题了,不能在static方法中调用非static方法。我想调用setvalue方法的话该如何呢?
}
void setvalue(int hang,int lie,char x)
{
if(b==false)
{
double arrayname1[][];
arrayname1=new double[hang][];
System.out.println("数组"+x+" 初始化为:");
for(int i=0;i<hang;i++)
{
arrayname1[i]=new double[lie];
for(int j=0;j<lie;j++)
{
arrayname1[i][j]=(double)(i*2+j);
System.out.print(arrayname1[i][j]);
}
System.out.println("");
}
b=true;
}
else
{
double arra

setvalue(3,5,'B'); // 就是这里的调用出问题了,不能在static方法中调用非static方法。我想调用setvalue方法的话该如何呢?
//下面这样就可以了
new multiarraytest().setvalue(3,5,'B');

static boolean b;

static void setvalue(int hang, int lie, char x) {
System.out.print(arrayname2[i][j]); // 你拼写错了,应该为2

不能在static里调用非stgatic方法,因为没有非static方法,必须要被实例化后,才能调用

这样改
static void setvalue(int hang,int lie,char x)

如果你只是在这里写着玩,就只能把stgatic写成静态的。如果在项目中,这种情况是基本不会有的,要尽量少的用静态方法。他们一直占用着内存的。