我做的练习题,总是卡在测试类的输出上面(在控制台总是输出地址信息啊),求大伙帮忙找出错误,并解释下怎么改正啊,还有那个数组的实例化是啥意思啊????以下是我的代码
public class XIV1i {
int vipNumber;
int vipScore;
}
public class XIV1ii {
XIV1i[] a=new XIV1i[100];
XIV1i[] b=new XIV1i[100];
public void add(XIV1i vip){
for(int i=0;i<a.length;i++){
if(a[i]==null){
a[i]=vip;
break;
}
}
}
public void show(){
for(int i=0;i<a.length;i++){
System.out.print(a[i]+""+i);
}
}
}
import java.util.Scanner;
public class XIV1测试 {
public static void main(String[] args){
Scanner in=new Scanner(System.in);
XIV1ii x=new XIV1ii();
XIV1i[] v=new XIV1i[1];
for(int i=0;i<1;i++){
System.out.print("输入会员编号:");
v[i]=new XIV1i();
v[i].vipNumber=in.nextInt();
x.add(v[i]);
}
System.out.println("***会员列表***");
System.out.println("编号");
x.show();
}
}

解决方案 »

  1.   

    你这个有两个问题,第一个你第二个类中的show方法的循环有问题,你的跳出条件是i<a.length,这里的a.length是100不是1,但是你的add方法只有a[0]被存入数据(就是vipnumber为1的那个实例)。
    第二,你show方法中,输出的是那个类对象,所以肯定输出的是这个对象在内从中的地址,你可以输出a[i].vipNumber,或者a[i].getClass().getName();
    还有你的测试类中,那个循环貌似没有用。
      

  2.   

    public class XIV1ii {
    XIV1i[] a=new XIV1i[100];
    XIV1i[] b=new XIV1i[100];
    public void add(XIV1i vip){
    for(int i=0;i<a.length;i++){
    if(a[i]==null){
    a[i]=vip;
    break;//直接跳出循环,后面的不会再被赋值
    }
    }
    }
    public void show(){
    for(int i=0;i<1;i++){//这里把你的i<100改成1了,因为你只有a[0]被存入数据了,如果是i<100就会跑出空指针异常
    System.out.println(a[i].vipNumber+"   "+i);
    }
    }
    }
      

  3.   

    你这程序写的,却好多东西,前面两个类构造的太简单了,class XIV1i这个类根本就没办法赋值,缺少构造函数
      

  4.   

    class XIV1i {
    int vipNumber;
    int vipScore;
    }public class XIV1ii {
    XIV1i[] a = new XIV1i[100];
    public void add(XIV1i vip) {
    for (int i = 0; i < a.length; i++) {
    if (a[i] == null) {
    a[i] = vip;
    break;
    }
    }
    }
    public void show() {
    for (int i = 0; i < a.length; i++) {
    if (a[i]!= null)
    System.out.print(a[i].vipNumber + "   " +a[i].vipScore);
    }
    }
    }import java.util.Scanner;public class XIV1 {
    public static void main(String[] args) {
    Scanner in = new Scanner(System.in);
    XIV1ii x = new XIV1ii();
    XIV1i[] v = new XIV1i[1];
    for (int i = 0; i < 1; i++) {
    System.out.print("输入会员编号:");
    v[i] = new XIV1i();
    v[i].vipNumber = in.nextInt();
    v[i].vipScore = in.nextInt();
    x.add(v[i]);
    }
    System.out.println("***会员列表***");
    System.out.println("编号");
    x.show();
    }
    }
      

  5.   

    去学习一下toSring()方法  看看这个方法是干什么的