Hallo liebes Forum,
dies ist mein erster Beitrag hier. Ich arbeite gerade an einem kleinen Programm, bei dem drei Lageristen über eine Warenausgabe Aufträge zur Bearbeitung zugewiesen bekommen sollen.
Es gibt also 2 Basisklassen (Auftrag, Lagerist) und eine Steuerungskomponente (Warenausgabe), welche die Lageristen und Aufträge jeweils über eine ArrayList verwalten.
Nun möchte ich zunächst über eine Methode (holeAuftrag) einem Lageristen einen Auftrag zuweisen, sofern er noch nicht beschäftigt ist. Dabei rufe ich die Instanzmethode (istBeschäftigt) aus der Klasse (Lagerist) auf. Der Compiler findet sie aber nicht:
Und ich komme einfach nicht darauf, woran es liegt.
Habe ich die Methode falsch gebaut? Ich hoffe es kann mir jemand weiterhelfen woran es hakt.
Vielen Dank schonmal fürs lesen!
Klasse Warenausgabe:
Klasse Lagerist:
Klasse Auftrag:
dies ist mein erster Beitrag hier. Ich arbeite gerade an einem kleinen Programm, bei dem drei Lageristen über eine Warenausgabe Aufträge zur Bearbeitung zugewiesen bekommen sollen.
Es gibt also 2 Basisklassen (Auftrag, Lagerist) und eine Steuerungskomponente (Warenausgabe), welche die Lageristen und Aufträge jeweils über eine ArrayList verwalten.
Nun möchte ich zunächst über eine Methode (holeAuftrag) einem Lageristen einen Auftrag zuweisen, sofern er noch nicht beschäftigt ist. Dabei rufe ich die Instanzmethode (istBeschäftigt) aus der Klasse (Lagerist) auf. Der Compiler findet sie aber nicht:
Warenausgabe.java:40:18: error: cannot find symbol
if (!lagerist.istBeschäftigt) {
^
symbol: variable istBeschäftigt
location: variable lagerist of type Lagerist
1 error
Und ich komme einfach nicht darauf, woran es liegt.
Habe ich die Methode falsch gebaut? Ich hoffe es kann mir jemand weiterhelfen woran es hakt.
Vielen Dank schonmal fürs lesen!
Klasse Warenausgabe:
Java:
import java.util.ArrayList;
/**
* Diese Klasse stellt ein Verwaltungssystem (aufnehmen, löschen, suchen) für
* beliebig viele Aufträge bereit. Jedem Lageristen ist zu einem bestimmten
* Zeitpunkt immer genau ein Auftrag zugeordnet.
*/
public class Warenausgabe {
private Lagerist lagerist;
//Erstellung der Auftrags-Liste
private static ArrayList<Auftrag> möbel = new ArrayList<Auftrag>();
//Erstellung der Lageristen-Liste
private static ArrayList<Lagerist> lageristen = new ArrayList<Lagerist>();
//Die main-Methode mit den Testbedingungen
public static void main(String[] args) {
//Erstellen der Lageristen-Liste
lageristen.add(new Lagerist("Kuno"));
lageristen.add(new Lagerist("Peter"));
lageristen.add(new Lagerist("Hans"));
möbel.add(new Auftrag("Bett", "210x150x60cm", "44b", 9));
möbel.add(new Auftrag("Couch", "150x90x75cm", "28f", 7));
möbel.add(new Auftrag("Schrank", "210x100x50cm", "34c", 5));
möbel.add(new Auftrag("Regal", "200x60x30cm", "11g", 3));
möbel.add(new Auftrag("Sideboard", "150x80x45cm", "39d", 8));
möbel.add(new Auftrag("Kommode", "60x40x40cm", "8a", 2));
möbel.add(new Auftrag("Garderobe", "210x160x100cm", "33g", 10));
//peter.holeAuftrag();
System.out.println(lageristen);
System.out.println(möbel);
}
//Ein Lagerist holt sich den nächsten Auftrag aus der Liste
public void holeAuftrag(Auftrag a){
if (!lagerist.istBeschäftigt) {
lagerist.setAuftrag(a);
lagerist.setBeschäftigt();
} // end of if
}
}
Klasse Lagerist:
Java:
public class Lagerist {
//Instanzvariablen
private String name;
private Auftrag auftrag;
private boolean beschäftigt = false;
//Lagerist lagerist;
//Konstruktor
public Lagerist(String name) {
this.name = name;
}
//Methoden: access part of representation
public boolean istBeschäftigt(){
if (!beschäftigt) {
return true;
}
else {
return false;
}
}
public String getName(){
return name;
}
public Auftrag getAuftrag(){
return auftrag;
}
//Methoden: modify representation
public void setAuftrag(Auftrag auftrag){
this.auftrag = auftrag; //hier muss die Referenz mit dem Lageristen hin
}
public void setBeschäftigt(){
this.beschäftigt = beschäftigt;
}
public void removeAuftrag(){
this.auftrag = null;
}
//Deskriptor
public String toString(){
return "Lagerist "+name+" beschäftigt sich mit "+auftrag+"\n";
}
//Ende Methoden
}
Klasse Auftrag:
Java:
public class Auftrag {
//Instanzvariablen
private String name;
private String maße;
private String ort;
private int minutesNeeded;
private int minutesLeft;
private boolean inBearbeitung = false;
private boolean bereitsBearbeitet = false;
// constructor
public Auftrag(String name, String maße, String ort, int minutesNeeded){
this.name = name;
this.maße = maße;
this.ort = ort;
this.minutesNeeded = minutesNeeded;
this.minutesLeft = minutesNeeded;
}
//Methoden: access part of representation
public String getName(){
return name;
}
public String getMaße(){
return maße;
}
public String getOrt(){
return ort;
}
public int getMinutesLeft(){
return minutesNeeded;
}
public int getMinutesNeeded(){
return minutesNeeded;
}
public boolean wirdBearbeitet(){
return inBearbeitung;
}
public boolean fertig(){
return bereitsBearbeitet;
}
//Methoden: modify representation
public boolean Bearbeitung()
{
//Decide if modification is possible
if (inBearbeitung) {
//Bereits inBearbeitung!
return false;
} else {
inBearbeitung = true;
return true;
}
}
//Deskriptor
public String toString(){
String list = "Dieser Auftrag hat den Namen "+name+", die Maße "+maße+
", wird gelagert in Regal "+ort+
" und ";
if (!inBearbeitung) {
list += "ist nicht in Bearbeitung"+"\n"+"\n";
} else {
list += " braucht noch "+minutesLeft+" Minuten"+"\n"+"\n";
}
return list;
}
//Ende Methoden
}