class an
{
int title=1;
int pane[][]=new int[16][16];
public void static ChessBord(int i,int j,int dr,int dc,int size)
{
if (size==1) return;
int t=this.title+1;
int s=size/2;
if (dr<i+s&&dc<j+s)//检测左上角
ChessBord(i,j,dr,dc,s);
else
{
pane[i+s-1][j+s-1]=t;
ChessBord(i,j,i+s-1,j+s-1,s);
}
if (dr<i+s&&dc>j+s)//检测右上角
ChessBord(i,j+s,dr,dc,s);
else
{
pane[i+s][j+s-1]=t;
ChessBord(i,j+s,i+s-1,j+s,s);
}
if (dr>i+s&&dc<j+s)//检测左下角
ChessBord(i+s,j,dr,dc,s);
else
{
pane[i+s][j+s-1]=t;
ChessBord(i+s,j,i+s,j+s-1,s);
}
if (dr>i+s&&dc>j+s)//检测右下角
ChessBord(i+s,j+s,dr,dc,s);
else
{
pane[i+s][j+s]=t;
ChessBord(i+s,j+s,i+s,j+s,s);
}
}
}
public class Page
{
  public static void main(String args[])
        {
            int i=0,j=0;
            int dr=5,dc=5;
   int size=16;
            an.ChessBord(i,j,dr,dc,size);
            System.out.println("OK");
        }
 }
调试不成功,请指点

解决方案 »

  1.   

    public void static ChessBord(int i,int j,int dr,int dc,int size)
    去掉上面这个函数中的static,然后调用的时候如下:
    an anIns = new an();
    anIns.ChessBord( i, j, dr, dc, size );
      

  2.   

    an内一直都没有在内存中创建,所以直接这样调用它的static方法是不行的。还是像一样说的那样做,先建立一个实例,然后再调用。至于statiC去不去掉就看自己的需要
      

  3.   

    首先看你的代码,很不规范,static 应该在 void 前面,而且你的class 里面的变量到底是私有还是?建议你为私有 而且如果不需要变动的话 都用final型。不然进行初始化时 会调用默认的构造器(你没自己设置构造器) 那么这些变量的值将出现不该有的错误。