Die Erstellung mehrerer Objekte mit unterschiedlichen Namen in einer Schleife zu speichern in einem array-Liste

Ich versuche zu erstellen, die mehrere Objekte einer Klasse die ich gemacht habe. Dann möchte ich für die Vermittlung dieser Werte in der array-Liste. Wie kann ich Objekte erstellen, die mit Hilfe einer while-Schleife, die unterschiedliche Namen haben. Zum Beispiel hier ist mein code jetzt, aber es würde nur ein Objekt mit einem Namen.

Customer cust = new Customer("bob", 20.0);

und mein Konstruktor, wenn Sie wollen, um zu sehen:

public Customer(String customerName, double amount)
{
    String name=customerName;
    double sale=amount;
}

StoreTest Klasse (mit main-Methode):

import java.util.ArrayList;
import java.util.Scanner;

public class StoreTest {

ArrayList<Customer> store = new ArrayList<Customer>();

public static void main (String[] args)
{
        double sale=1.0; //so the loop goes the first time
        //switch to dowhile
        Scanner input = new Scanner(System.in);

        System.out.println("If at anytime you wish to exit" +
                ", please press 0 when asked to give " +
                "sale amount.");
        while(sale!=0)
        {
            System.out.println("Please enter the " +
                    "customer's name.");
            String theirName = input.nextLine();

            System.out.println("Please enter the " +
                    "the amount of the sale.");
            double theirSale = input.nextDouble();

            store.addSale(theirName, theirSale);
        }
        store.nameOfBestCustomer();
}

}

Customer-Klasse:

public class Customer {

private String name;
private double sale;

public Customer()
{

}

public Customer(String customerName, double amount)
{
    name=customerName;
    sale=amount;
}
}

Store-Klasse (hat Methoden für Unordnung mit arraylist:

import java.util.ArrayList;


public class Store {

//creates Customer object and adds it to the array list
public void addSale(String customerName, double amount)
{
    this.add(new Customer(customerName, amount));
}

//displays name of the customer with the highest sale
public String nameOfBestCustomer()
{
    for(int i=0; i<this.size(); i++)
    {

    }
}
}
  • Ihr Konstruktor nicht tun, etwas sinnvolles mit den Argumenten übergeben.
  • Erstellen Sie einen String-array mit Namen, und wenn Sie den loop, um Ihre Objekte, wähle einen zufälligen Wert in diesem array.
  • Was meinst du? Ist es nicht an der Schaffung eines Customer-Objekt?
  • Sicher, aber nicht die Einstellung alle Felder, die nur lokale Variablen.
  • Ich habe andere Methoden, die den Zugriff auf die lokalen Variablen.
  • Ihre Customer(String, double) - Konstruktor tut nichts, die Customer() tut. Sie stellen die Variablen Gültigkeitsbereich nur an den Konstruktor übergeben. Sie sind nicht die Einstellung Klasse-level-Variablen name oder sale.
  • Ist das weil ich String und double vor Ihnen? Als ich erklärte, dass Sie außerhalb des Konstruktors jetzt. So annyway, wißt Ihr, wie creat mehrere Objekte mit unterschiedlichen Namen, die mit einer Schleife?
  • Das können Sie nicht. Sie können nur eine Art von einer Sammlung zu tun... und ja, das problem mit dem Konstruktor die keywords String, und double, wie ich nachgewiesen in meiner Antwort.

InformationsquelleAutor user1953907 | 2013-11-13
Schreibe einen Kommentar