2017-10-05 1 views
-2

Ich habe eine Klasse namens Employee und jetzt möchte ich eine Klasse namens ReusaxCorp schreiben. Jeder Mitarbeiter des Unternehmens hat eine ID, einen Namen und ein Bruttogehalt, die später abgerufen werden können. Die Klasse ReusaxCorp sollte Mitarbeiter registrieren und entfernen (beginnend mit keinem Mitarbeiter). Das Problem, das ich habe, ist, dass ich nicht weiß, wie ich Angestellte registrieren und sie speichern kann. Außerdem wurde mir gesagt, ich solle Polymorphie verwenden. Hier ist die Klasse Employee:Java "Registrieren" (Speichern) und Entfernen "Mitarbeiter"

public class Employee { 

    private String ID; 
    private String name; 
    private int grosssalary; 

    public Employee (String ID, String name, int grosssalary){ 
     this.ID = ID; 
     this.name = name; 
     this.grosssalary = grosssalary; 
    } 


    public int getGrosssalary() { 
     return grosssalary; 
    } 

    public void setGrosssalary(int grosssalary) { 
     this.grosssalary = grosssalary; 
    } 

    public void setName(String name) { 
     this.name = name; 
    } 
} 
+0

Es scheint zu sein, Hausaufgaben – Ravi

+3

Hausaufgaben Fragen sind in Ordnung, aber Sie haben Ihre att zu zeigen, leere eine Lösung mit deiner Frage. Wenn du komplett verloren bist, solltest du hier keine Frage stellen - du solltest deinen Lehrer kontaktieren. –

Antwort

-1

Die Antwort von Griffin enthält die Elemente, mit denen Sie beginnen können. Um dies genauer auszuführen, sollten Sie auch sicherstellen, dass die Employee-Klasse die Methoden equals() und hashCode() korrekt überschreibt, damit Sie die Methode List.remove (Object) sicher verwenden können. Zum Beispiel die ID als Schlüssel für unicity mit:

@Override 
public int hashCode() { 
    final int prime = 31; 
    int result = 1; 
    result = prime * result + ((ID == null) ? 0 : ID.hashCode()); 
    return result; 
} 


@Override 
public boolean equals(Object obj) { 
    if (this == obj) 
      return true; 
    if (obj == null) 
      return false; 
    if (getClass() != obj.getClass()) 
      return false; 
    Employee other = (Employee) obj; 
    if (ID == null) { 
      if (other.ID != null) 
        return false; 
    } else if (!ID.equals(other.ID)) 
      return false; 
    return true; 
} 

Jetzt können Sie in Ihrer ReusaxCorp Klasse um so etwas wie dies funktionieren:

private List<Employee> mEmployees = new ArrayList<Employee>() 

/** 
* Removes one employee from the corporation 
*/ 
public void remove(Employee employee) { 
    mEmployees.remove(employee); 
} 

/** 
* Inserts a new employee 
*/ 
public void insert(Employee employee) { 
    // can check for unicity (optional): 
    if (mEmployees.contains(employee)) throw new IllegalArgumentException("Employee already exists"); 

    mEmployees.add(employee); 
} 

Wenn Sie nur die ID des Mitarbeiters Sie wissen wollen zu entfernen, können Sie eine neue Mitarbeiter-Instanz erstellen eine bestehenden anzupassen:

// Thanks to redefinition of equals(), it will match and remove the correct employee without having to know the name or salary. 
corp.remove(new Employee(ID, "", 0)); 
0

Ihre Frage ziemlich breit ist, aber Ill sehen, ob ich bekommen Sie begann ...

Sie könnten gehen zu 'Registrierung der Mitarbeiter durch ein Array Liste der Mitarbeiter Objekte verwendet wird.

//create array list 
ArrayList<Employee> employees = new ArrayList<Employee>(); 

Nun, wenn Sie einen Mitarbeiter erstellen ...

//create employee (of course enter whatever you need for your constructor) 
Employee employee = new Employee("sampleID", "sampleName", 0); 

Sie Ihre Mitarbeiter auf die Array-Liste hinzufügen können. Sie können auch Elemente aus Ihrer Array-Liste in einem bestimmten Index entfernen. Im Folgenden sind Beispiele ...

//add employee 
employees.add(employee); 
//remove employee(would have initialize int index to which you want to remove) 
employees.remove(int index); 

lesen Sie auf Array-Listen, um zu sehen, was Sie sonst noch mit ihnen tun können. Ich bin sicher, dass sie haben, wonach Sie suchen.

Verwandte Themen