Klassen Array durch eine Klasse aufrufen

griaff

Mitglied
Hallo Java-Forum,

im Voraus: ich bin absoluter Anfänger, verzeiht mir also bitte Sachen, die ich vergessen habe.

Folgendes Problem: ich habe zwei Klassen, wobei in einer ein Array erstellt wurde, welches durch eine andere eingelesen werden soll. Sieht folgendermaßen aus:

Java:
class Person {
    String Name;
    int yellow; 
    int red; 
    int[] currentBears;
    
    void setName (String x) {
        Name=x;
    }
    
    void take (int[] currentBears) {
        if (currentBears[0]>0){
            currentBears[0]--;
            yellow++;
        } else {
            currentBears[1]--;
            red++;
        }
    }
        
        
        
}

class ObjectBears {

    public static void main(String[] args) {
        Person susi = new Person();
        Person fred=new Person();
        Person paul=new Person();
        susi.setName("Susi Sorglos");
        fred.setName("Fred Feuerstein");
        paul.setName("Paul Panther");
       
        System.out.print("Anzahl rote: ");
        int red=In.readInt();
        System.out.print("Anzahl gelbe: ");
        int yellow=In.readInt();
        
        int[] currentBears= new int[2];
        currentBears[0]=red;
        currentBears[1]=yellow;
       
        while (currentBears[0]+currentBears[1] >0) {
            currentBears=susi.take(currentBears);
           // currentBears=fred.take(currentBears);
           // currentBears=paul.take(currentBears);
        }
        
       // susi.printResult();
       // fred.printResult();
       // paul.printResult();
    }

 }

Der Compiler gibt aber eine Fehlermeldung aus: error: incompatible types
currentBears=susi.take(currentBears);
required: int[]
found: void

Vielen Dank im Voraus!
 
Die Methode
Java:
void take (int[] currentBears)
gibt keinen Wert zurück (void), deßhalb die Meldung.
 
Zuerst mal möchte ich sagen, die Anforderung ist ...ähm... nicht objektorientiert. Wenn eine Klasse ein Array als Member besitzt sollte keine andere Klasse darüber bescheid wissen, höchsten einzelne Elemente daraus anfordern ohne konkret zu wissen, dass die aus einem Array kommen..
Vielen Dank schonmal, was muss ich also tun, damit der Wert zurückgegeben wird? Eine Funktion verwenden?
Java kennt nur Methoden. In diesem Fall wurde eine Methode ohne Rückgabewert definiert, aber versucht, einen Wert (das Array) zurückzugeben. Du mußt also den Rückgabewert der Methode von
Code:
void
auf den Typ dea Arrays ändern.

bye
TT
 

Zurück
Oben