2015-11-08 41 views
-1

Cullerton Part District每個夏季都舉辦迷你奧運。創建一個名爲Participant的類,其中包含名稱,年齡和街道地址的字段。包含一個爲每個字段分配參數值的構造函數和一個返回包含所有值的String的toString()方法。還包括一個equals()方法,用於確定兩個參與者在所有三個字段中具有相同值時是否相等。創建一個包含至少5名參與者的兩個陣列的應用程序 - 一個持有迷你馬拉松參與者,另一個持有參與者參加跳水比賽。提示用戶參與兩個事件的參與者將文件保存爲BC.java和ABC.java。我的輸出存在一些問題

import javax.swing.JOptionPane; 
import java.util.*; 

public class ABC { 
    private static Participant mini[] = new Participant[2]; 


    public static void main(String[] args) { 

     setParticipant(); 
     displayDetail(); 

    } 


     // BC p=new BC(name,age,add); 
    //displayDetails(); 
     // System.out.println( p.toString()); 
    public static void displayDetail() { 

     String name=null; 
     String add = null; 
     int age=0; 

     System.out.println("Name\tAdress\tAge"); 
     BC p=new BC(name,age,add); 
     for (int x = 0; x < mini.length; x++) { 
//Participant p1=mini[x]; 
      System.out.println(p.toString()); 
     } 
    } 



      public static String getName() { 
       Scanner sc = new Scanner(System.in); 
       String name; 
      System.out.print(" Participant name: "); 
       return name = sc.next(); 
      } 

     // System.out.print(" Participant name: "); 
     // name = sc.next(); 
      public static int getAge() { 
int age; 
       System.out.print(" Enter age "); 
       Scanner sc=new Scanner(System.in);; 
       return age= sc.nextInt(); 
      } 
     public static String getAdd() { 
      String add; 

      Scanner sc=new Scanner(System.in);; 
     System.out.print("Enter Address: "); 
     return add=sc.next(); 
     } 


    public static void setParticipant(){ 
     for (int x = 0; x < mini.length; x++) { 
     System.out.println("Enter loan details for customer " + (x + 1) + "..."); 
//Character loanType=getLoanType(); 
     //String loanType=getLoanType(); 
     String name=getName(); 
      String add=getAdd(); 
      int age=getAge(); 
     System.out.println(); 
     } 


     } 
    } 

    //another class 
public class BC { 


    private String name; 
    private int age; 
    private String address; 


    public BC(String strName, int intAge, String strAddress) { 

     name = strName; 
     age = intAge; 
    address = strAddress; 
    } 


    @Override 
    public String toString() { 
     return "Participant [name=" + name + ", age=" + age + ", address=" + address + "]"; 
    } 
public boolean equals(Participant value){ 
    boolean result; 
    if (name.equals(name) && age==value.age && address.equals(address)) 
      result=true; 
    else 
     result=false; 
    return result; 
     } 





} 

outPut: 
Enter loan details for customer 1... 
Participant name: hddgg 
Enter Address: 122 
Enter age 12 

Enter loan details for customer 2... 
Participant name: ddjkjde 
Enter Address: hdhhd23 
Enter age 12 
//Why I'm not getting right output 
Name Adress Age 
Participant [name=null, age=0, address=null] 
Participant [name=null, age=0, address=null] 

回答

1

您獲得的輸出,因爲這種方法:

public static void displayDetail() { 

    String name=null; 
    String add = null; 
    int age=0; 

    System.out.println("Name\tAdress\tAge"); 
    BC p=new BC(name,age,add); 
    for (int x = 0; x < mini.length; x++) { 
     //Participant p1=mini[x]; 
     System.out.println(p.toString()); 
    } 
} 

您正在創建用空公元前姓名和年齡增加和0。然後你打印兩次。

+0

我該怎麼辦? –

+0

你可以告訴我正確的方法 –

+0

我不確定你的意思是「正確的方法」。我認爲你只需要修復你的displayDetail方法從「mini」而不是「p」 – Thevenin