2014-11-23 2 views
0
package javaapplication2; 
import java.util.Scanner; 

public class JavaApplication2 
{ 
    public static void main(String[] args) 
    { 
     person_type salespeople[] = new person_type [100]; 
     person_type person = new person_type(); 
     int counter = 0; 

     person.gross=0; 
     person.salary=0; 

     System.out.println("How many workers are there?"); 
     Scanner number_of_workers = new Scanner(System.in); 
     counter=number_of_workers.nextInt(); 

     for(int i=0; i<counter; i++) 
     { 
      salespeople[i] = person; 
      System.out.println(person.salary); 
     } 

     for(int i=0; i<counter; i++) 
     { 
      System.out.print("Enter the salary of the salesperson "); 
      System.out.print(i+1); 
      System.out.println(":"); 
      Scanner salary = new Scanner(System.in); 
      salespeople[i].salary = salary.nextInt(); 


      System.out.print("Enter the gross of the salesperson "); 
      System.out.print(i+1); 
      System.out.println(":"); 
      Scanner gross = new Scanner(System.in); 

      salespeople[i].gross = gross.nextInt(); 

      System.out.println("1---- " + salespeople[0].salary); 
      System.out.println(i); 
     } 

     System.out.println("First worker's salary is: " + salespeople[0].salary); 
     System.out.println("First worker's gross " + salespeople[0].gross); 

     System.out.println("Second worker's salary is: " + salespeople[1].salary); 
     System.out.println("Second worker's gross is: " + salespeople[1].gross); 
    } 

    private static class person_type 
    { 
     int salary; 
     int gross;   
    } 

} 

Я пытаюсь помещать каждого сотрудника в массив, но все данные сотрудников перезаписываются последним, введенным пользователем. Не могли бы вы помочь? Заранее спасибо!!JAVA Employee Type with Arrays

+0

Вы вставляете * тот же * 'человек' в цикле, переопределение - просто иллюзия. Пожалуйста, измените имя класса, чтобы начать с верхнего регистра. – Maroun

+0

хорошо, спасибо за это! – Gara

ответ

3

Все элементы массива относятся к одному person_type например:

for(int i=0; i<counter; i++) 
{ 
    salespeople[i] = person; 
    System.out.println(person.salary); 
} 

Вы должны создать новый экземпляр person_type для каждого индекса массива.

for(int i=0; i<counter; i++) 
{ 
    salespeople[i] = new person_type(); 
} 

Кстати, я предлагаю вам изменить имя класса либо Person или PersonType соответствовать Java именования.

+0

о, вы здорово! большое спасибо! – Gara