массив в объектно-ориентированном программировании - PullRequest
0 голосов
/ 12 октября 2018

Я новичок в объектно-ориентированном программировании, и это мой первый маленький проект. Я слышал, что здесь каждый может помочь вам в вашем коде, и это мой первый раз. Во всяком случае, моя проблема, почему массив несохранить любое значение?

Вот код:

    public class Information {
    private IT_Members[] member= new IT_Members[10];
    private int counter = 0;



Information()
{
    for ( int ctr=0;ctr<member.length;ctr++)
    {
        member[ctr] = new IT_Members ();

    }

}

public void Add(IT_Members member)
    {
        if(counter<10)
        {
        this.member[counter].setName(member.getName());
        this.member[counter].setDeparment(member.getDeparment());
        this.member[counter].setPostion(member.getPostion());
        this.member[counter].setID(member.getID()+counter);
        counter++;
        }
        else
            System.out.println("Add List Full"); 
    }
public void Display()
    {
        if (counter!=0)
        {
            for (int ctr=0;ctr<10;ctr++){
            System.out.println(this.member[ctr].getName()+
           this.member[ctr].getDeparment()+
           this.member[ctr].getPostion()+ 
           this.member[ctr].getID());


            }
        }
        else
        System.out.println("No member yet!");



    }

Вот основной класс:

import java.util.Scanner;
import java.util.Arrays;
public class Interface {

    public static void main(String[]args)
    {
        Scanner in=new Scanner(System.in);
        IT_Members input1 = new IT_Members();
        Information input2 = new Information();
        int x=1;
        while(x!=0)
        {

        System.out.println(" \n[1] Add new student member. \n[2] View members.\nChoose now: ");
        int choose = in.nextInt();

        switch (choose){

            case 1:
              System.out.println("Name: ");
              input1.setName(in.nextLine());
              System.out.println("Deparment: ");
              input1.setDeparment(in.nextLine());
              System.out.println("Postion: ");
              input1.setPostion(in.nextLine());
              System.out.println("Student record has been added. ");
              break;

            case 2:

                input2.Display();
                break;

}
}

.........................................................................

public class IT_Members {
    private String name,deparment,postion;
    private int ID=1000;
    private int Flag=0;

    IT_Members (){


    }
    IT_Members (String name, String deparment , String postion ,int ID , int Flag){
     this.name= name;
     this.deparment=deparment;
     this.postion=postion;
     this.ID=ID;
     this.Flag=Flag;


    }

    public String getName (){

        return this.name;
    }
    public String getDeparment (){

        return this.deparment;
    }

    public String getPostion (){

        return this.postion;
    }

    public int getID (){

        return this.ID;
    }

    public int getFlag (){

        return this.Flag;
    }

    public void setName (String name){

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

        this.deparment = deparment;
    }

    public void setPostion (String postion){

        this.postion = postion;
    }

    public void setID (int ID){

        this.ID = ID;
    }

    public void setFlag (int Flag){

        this.Flag = Flag ;
    }

    public String toStu()
    {

        String str = "";
        str = "\nName: " + this.name +
                "\nDeparment: " + this.deparment + 
                "\nPostion: " + this.postion +
                "\nID: " + this.ID;
        return str;        
    }
}

Пожалуйста, я застрял с этим, я ценю любую помощь.

Спасибо.

Ответы [ 2 ]

0 голосов
/ 12 октября 2018

Вы должны каждый раз создавать новый объект и, в конце концов, добавлять в список.

import java.util.Scanner;
import java.util.Arrays;
public class Interface {

    public static void main(String[]args)
    {
        Scanner in=new Scanner(System.in);
        Information input2 = new Information();
        int x=1;
        while(x!=0)
        {

        System.out.println(" \n[1] Add new student member. \n[2] View members.\nChoose now: ");
        int choose = in.nextInt();

        switch (choose){

            case 1:
              IT_Members input1 = new IT_Members();// this need to be here so that every time crete new object
              System.out.println("Name: ");
              input1.setName(in.nextLine());
              System.out.println("Deparment: ");
              input1.setDeparment(in.nextLine());
              System.out.println("Postion: ");
              input1.setPostion(in.nextLine());
              input2.Add(input1); // that was missing
              System.out.println("Student record has been added. ");
              break;

            case 2:

                input2.Display();
                break;

}
}
0 голосов
/ 12 октября 2018

Вы никогда не вызываете функцию Add в классе Information.Поэтому вы никогда не инициализируете ни один из элементов массива, которые затем хотите отобразить.

Вам необходимо добавить input2.Add(input1), прежде чем печатать, что это было добавлено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...