运行错误/对象没有输入到数组中

时间:2014-02-25 20:11:47

标签: java arrays object

我编写了这个程序并且它没有错误地完成,但是当我输入(name-age-id)应该是一个对象时它没有输入到数组中! 谁能告诉我问题出在哪里? :(

public class ClientClass {
        public static Scanner read = new Scanner(System.in);


        public static void main(String[] args) {

            while (true) {
                System.out.println("what do you want to do? \n a-add a baby. \n b-search for a baby \n c-Delet a baby. \n d-Display all babys.\n e-how many babys need inoculation \n f-exit");
                char f = read.next().charAt(0);
                Kindergarten k = new Kindergarten("baby", 10);


                if (f == 'a') {

                    System.out.println("enter the name :");
                    String name1 = read.next();
                    System.out.println("enter the id number :");
                    int id1 = read.nextInt();

                    BABY b = new BABY(name1, id1);

                    System.out.println("enter the age :");
                    int age1 = read.nextInt();
                    b.setage(age1);
                    k.add_b(b);

                }

                if (f == 'b') {
                    int v = -1;
                    System.out.println("enter the id number");
                    int id1 = read.nextInt();

                    v = k.srch_b(id1);
                    if (v == -1)
                        System.out.println("baby not found");
                    else
                        System.out.println(k.toString());
                }//there is somthing miss


                if (f == 'c') {
                    System.out.println("enter the id number");
                    int id1 = read.nextInt();
                    k.del_b(id1);
                }

                if (f == 'd') {
                    k.display_all();
                }

                if (f == 'e') {
                    int s = k.num_b_inoculation();
                    System.out.println("there is " + s + "baby need inoculation");
                }

                if (f == 'f')
                    break;
            }
        }
    }


    class Kindergarten {
        private String name;
        private int currnt;
        private BABY arr[];

        public Kindergarten(String name, int numOfbaby) {
            this.name = name;
            arr = new BABY[numOfbaby];

        }

        public Kindergarten(String name, BABY[] arr) {
            this.name = name;

            for (int i = 0; i < currnt; i++)
                this.arr[i] = arr[i];
        }

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

        public void setcurrnt(int currnt) {
            this.currnt = currnt;
        }

        public void setarr(BABY[] arr) {
            for (int i = 0; i < currnt; i++)
                this.arr[i] = arr[i];
        }


        public String getname() {
            return name;
        }

        public int getcurrnt() {
            return currnt;
        }

        public BABY[] getarr() {
            return arr;
        }


        public String toString() {
            return String.format("%s", name);
        }

        //add
        public void add_b(BABY b) {
            if (currnt == arr.length)
                System.out.println("there is no speace for another baby");
            else
                arr[currnt++] = new BABY(b);

        }

        public int srch_b(int id) {
            int i;
            for (i = 0; i < currnt; i++)
                if (id == arr[i].getid())
                    return i;
            return -1;
        }

        public void del_b(int id) {
            if (currnt == 0)
                System.out.println("ther is no bebys to delet it ");
            else {
                int i;
                for (i = 0; i < currnt; i++)
                    if (id == arr[i].getid())
                        arr[i] = arr[currnt - 1];
                currnt--;
            }
        }

        public void display_all() {
            for (int i = 0; i <= currnt; i++)
                System.out.println(arr[i].toString());
        }

        public int num_b_inoculation() {
            int num = 0;
            for (int i = 0; i < currnt; i++)
                if (arr[i].require_inoculation() == true) num++;
            return num;
        }
    }


    class BABY {
        private String name;
        private int id;
        private int age;

        public BABY(BABY b) {
            name = b.getname();
            id = b.getid();
            age = b.getage();
        }

        public BABY(String name, int id) {
            this.name = name;
            this.id = id;
        }

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

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

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

        public String getname() {
            return name;
        }

        public int getid() {
            return id;
        }

        public int getage() {
            return age;
        }

        public String toString() {
            return String.format("%s-%d-%d", name + id + age);
        }

        public boolean require_inoculation() {
            if (age < 3)
                return true;
            return false;
        }
    }

1 个答案:

答案 0 :(得分:0)

尝试这样做

class Kindergarten {
    private String name;
    private int currnt =0;
    private BABY arr[];...