forループを使用してドライバのインスタンスをドライバ配列に追加しようとしました。各ドライバには、forループによって収集される3つの基本変数があります。ループが実行されると、最後のドライバの詳細が配列のすべてのインデックスに格納されます!私はそれを得るために私は個々のドライバをアレイに追加することができます。forループを使用して配列にオブジェクトを追加すると、最後に追加されたオブジェクトがすべてのインスタンスに使用されます
public static void addDriver(Driver[] d) { //method using for loop to add drivers
for(int i = 0; i < d.length; i++) {
String name, DOB, occupation;
System.out.println("Please Enter Driver Name");
name = kb.nextLine();
System.out.println("Please Select Driver Occupation");
System.out.println("1: Chauffeur" + "\n2: Accountant");
int choice = kb.nextInt();
kb.nextLine();
if (choice == 1) {
occupation = "Chauffeur";
} else {
occupation = "Accountant";
}
System.out.println("Please Enter Driver D.O.B");
DOB = kb.nextLine();
d[i] = new Driver(name, occupation, DOB);
}
}
ご協力いただきありがとうございます。
編集...ここ
は、mainメソッドのコードですが、私はdriverNumと呼ばれる別の方法からの配列のサイズを取得します。ここ
public static void main(String[] args) {
int drivers = driverNum(); //Setting size of the array
Driver[] d = new Driver[drivers]; //creating new array using number of drivers to be insured
addDriver(d); //calling method to add drivers to array
for(int x = 0; x < d.length; x++)
{
System.out.println(d[x].toString());
}
}
私はそれが正しいと思ったので、私は使用しているドライバーのクラスは...
public class Driver {
static String name, occupation, DOB;
public Driver()
{
name = "";
occupation = "";
DOB = "";
}
public Driver(String name, String occupation, String DOB)
{
this.name = name;
this.occupation = occupation;
this.DOB = DOB;
}
public void setName(String name)
{
this.name = name;
}
public String getName(Driver d)
{
return name;
}
public void setOccupation(String occupation)
{
this.occupation = occupation;
}
public String getOccupation()
{
return occupation;
}
public void setDOB(String DOB)
{
this.DOB = DOB;
}
public String getDOB()
{
return DOB;
}
public String toString()
{
String s;
s = "Name: " + name;
s = s + "\nOccupation: " + occupation;
s = s + "\nDOB: " + DOB;
return s;
}
}
アイブ氏は、今しばらくの間、この上で、私の頭を悩まれています。これまでの助けてくれてありがとう!あなたのDriver
クラスで
ループの前に 'd.length'の値は何ですか? – MaxZoom
何かが欠けていない限り、これはうまくいくようです。このメソッドを呼び出す場所にコードを投稿し、その結果を印刷できますか? –
ここに間違いはないと思います。 @ JamalHが言ったように、このメソッドを呼び出すコードを投稿してください。 –