荼蘼_ 2017-12-01 12:49 采纳率: 66.7%
浏览 824
已采纳

数组的引用数据类型 之间的转换类型

数组引用数据类型这块不熟悉,很蒙的,明白为啥但是理解的不透彻。
老师留的作业是用数组外部引用数据类型实现代码。

Vpoll[] voteArray = new Vpoll[5]; //引用数组
Scanner sc = new Scanner(System.in); //控制台输入参赛者的信息
for(int i=0;i<voteArray.length;i++)
{
String votename = " ";

               System.out.print("第"+(i+1)+"个参赛者的编号:"+(i+1)+" \n");//输入学号
               Vpoll votenum = new Vpoll();
               votenum.Vnum =i+1;
               voteArray[0] = votenum;//参赛者的编号

               System.out.print(" 请输入参赛者姓名:");
               Vpoll Vone = new Vpoll();
               Vone.Vname = sc.next();           
               voteArray[1]= Vone;   

               System.out.print(" 请输入参赛者年龄:");
               Vpoll Vtwo = new Vpoll(); 
               Vtwo.Vold = sc.next();
               voteArray[2]= Vtwo;

             //  Vpoll str = new Vpoll();  
     //   str = voteArray[i];
       System.out.print("以下为参赛选手\n"+votenum.Vnum+"."+Vone.Vname+"  "+Vtwo.Vold+"岁\n");
    }

我想实现循环输入名字、年龄,我数组长度为5,我输入5次之后显示名单。

但是我现在的代码问题是运行的是输入一次显示一次名单,如果把 System.out.print("以下为参赛选手\n"+votenum.Vnum+"."+Vone.Vname+" "+Vtwo.Vold+"岁\n");放在for循环外面enum.Vnum这几个引用就不好用,如果把我输入姓名、年龄的代码放到外面我又没有办法让他循环输入。。。。请问大神我该怎么更改?重要的是我的思路是不是错误的?

  • 写回答

2条回答 默认 最新

  • Lighthouse9527 2017-12-01 14:35
    关注

    /*

    • 参赛者类
      */
      public class Contestant {
      private int age; // 参赛者年龄
      private String name; // 参赛者名字
      private int id; // 参赛者编号

      public int getAge() {
      return age;
      }

      public void setAge(int age) {
      this.age = age;
      }

      public String getName() {
      return name;
      }

      public void setName(String name) {
      this.name = name;
      }

      public int getId() {
      return id;
      }

      public void setId(int id) {
      this.id = id;
      }

      // 参赛者类的有参构造方法
      public Contestant(int age, String name, int id) {
      this.age = age; // 给参赛者年龄赋值
      this.name = name; // 给参赛者名字赋值
      this.id = id; // 给参赛者编号赋值
      }
      }

    import java.util.Scanner;

    public class Test {
    public static void main(String[] args) {
    Contestant[] contestants = new Contestant[5]; // 参赛者类数组
    Scanner input = new Scanner(System.in);
    // 给参赛者循环赋值
    String name = "";
    int age = 0;
    int id = 0;
    for (int i = 0; i < contestants.length; i++) {
    System.out.println("第" + (i + 1) + "个参赛者");
    id = i + 1;
    System.out.println("请输入参赛者的名字:");
    name = input.next();
    System.out.println("请输入参赛者的年龄:");
    age = input.nextInt();
    contestants[i] = new Contestant(age, name, id);
    System.out.println();
    }
    System.out.println("以下为参赛选手:");
    System.out.println("1.编号\t2.名字\t3.年龄(岁)");
    for (int i = 0; i < contestants.length; i++) {
    System.out
    .println(contestants[i].getId() + "\t"
    + contestants[i].getName() + "\t"
    + contestants[i].getAge());
    }
    }

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已采纳回答 7月21日

悬赏问题

  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?