首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

构造方法的有关问题,大家帮帮忙啊

2011-12-02 
构造方法的问题,大家帮帮忙啊!这是java。错误总是这样的。Exception in thread main java.lang.NullPointe

构造方法的问题,大家帮帮忙啊!
这是java。错误总是这样的。
Exception in thread "main" java.lang.NullPointerException
  at MaxMinHeap.<init>(MaxMinHeap.java:23)
  at MaxMinHeap.main(MaxMinHeap.java:271)

public class Test {

  public int data[];
  public int N;
   
  public Test(int[] data) {
  int N = data.length;
  for(int i=N/2; i>=1; i--)
  data[i]=1;
}

   
  void exch(int i, int j)
  {
  int t = data[i];
  data[i] = data[j];
  data[j] = t;
  }
 
  public static void main(String[] args) {
   
  前面键盘输入略去。假设输入1 2 3 4 5.
  for(int i=1;i<M;i++)
data[i]=Integer.parseInt(standard.next());
  for(int i=1;i<M;i++)
System.out.println(data[i]);
  Test MT = new Test(data); 
System.out.println(MT.exch(1,5);
  }
 
 
}

[解决办法]
Test中的public int data[]; 没有创建

public int data[]; //这个没有初始化 =new int[..];
public int N;
 
public Test(int[] data) { //这里处理的是方法外创建的int[]data,跟public int data[];没有关系
int N = data.length;
for(int i=N/2; i>=1; i--)
data[i]=1;
}

 
void exch(int i, int j)
{
int t = data[i];     //这里使用的是public int data[];还没有创建呢,这句话肯定有问题.
data[i] = data[j];
data[j] = t;
}
[解决办法]

Java code
public class Test {     public int data[];     public int N;         public Test(int[] date) {     N = date.length;     data=new int[N];        for(int i=N/2; i>=1; i--)     data[i]=1; }         public void exch(int i, int j)     {         int datx[]=this.data;        int t= datx[i];         datx[i] = datx[j];         datx[j] = t;         System.out.println(datx[1]);    }         public static void main(String[] args)  {                 int M=5;        int date[]={1,2,3,4,5};        /*for(int i=1;i <M;i++)         data[i]=Integer.parseInt(standard.next()); */       // for(int i=1;i <M;i++)         //System.out.println(date[i]);         Test MT = new Test(date);         MT.exch(1,4);//这里最多就到4,5就越界了,这儿也不要输出一个没有返回值的函数,那样会报错,要实//现什么功能再改改吧     }         } 

热点排行