Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Ich habe eine Klasse Eigenschaften mit zwei Methoden. In der ersten hab ich ein Array angelegt. Aus einer anderen Klasse Aufruf möchte ich nun in der main-methode erst die erste Methode (mit dem Array) der Klasse Eigenschaften aufrufen und dann die zweite Methode der Klasse Eigenschaften, in der ich das Array auch verwenden will.
Nur klappt das nicht so ganz, also ich kann in der zweiten Methode nicht auf das Array zugreifen.
Ein bisschen genauer sollte es schon sein, bzw. etwas Quellcode - aber es koennte zum Beispiel sein, dass du das Array nur lokal (in der Methode deklariert hast).
Falls ja, koenntest du es z.B. für die Klasse sichtbar machen oder als return-Wert an deine main-Methode zurückgeben und dann etwa mit einem Parameter an deine zweite Methode übergeben.
public class EigenschaftenMaennlich{
int[] logik;
public void eigenschaftenVergeben(int i, int s, String[] name){
int[] logik = new int[s];
System.out.println("Wie hoch soll der Grad des logischen Denkens fuer "+(i+1)+" sein?");
logik[i] = OOUtil.readInt();
}
public void eigenschaftenAnzeige(int i, int s, String[] name){
int[] logik = new int[s];
System.out.println("Die Logik von "+(i+1)+" liegt bei "+logik[i]+".");
}
}
Und hier noch der zweite:
Code:
public class Aufruf{
static int n = 0;;
static int s = 0;
static int i = 0;
static String[] name;
static int spielrunde;
public void geburt(int i){
System.out.println("Wie viele Menschen willst du erzeugen?");
s = OOUtil.readInt();
name = new String[s];
}
public static void main(String[] argv){
Aufruf start = new Aufruf();
EigenschaftenMaennlich spielMaennlich = new EigenschaftenMaennlich();
start.geburt(i);
for (i = 0; i < s; i++){
spielMaennlich.eigenschaftenVergeben(i, s, name);
}
for(i = 0; i < s; i++){
spielMaennlich.eigenschaftenAnzeige(i, s, name);
}
}
}
Bei eigeschaftenAnzeige kommt nur leider immer 0 raus.
1. Du überschreibst die Instanzvariable logik mit der lokalen Variable logik in deinen Methoden... vermutlich willst du das nicht.
2. Warum erzeugst du ber der Anzeige Methode überhaupt eine logik-Variable -du willst doch die erstellte lediglich ausgeben, daher solltest du auch nur auf diese zugreifen und nix neues erstellen - das muss logischerweise immer 0 werden
Also bei der erstellen Methode das int[] vor logik weg... und bei der Anzeige das ding komplett weg...
ob das ganze irgendeinen Sinn ergibt insg. weiß ich allerdings nicht
Ich hab's jetzt so abgeändert, aber bei eigenschaftenAnzeige gibt er immer noch nicht die richtigen Werte aus.
Code:
public class EigenschaftenMaennlich{
int[] logik;
public void eigenschaftenVergeben(int i, int s, String[] name){
logik = new int[s];
System.out.println("Wie hoch soll der Grad des logischen Denkens fuer "+(i+1)+" sein?");
logik[i] = OOUtil.readInt();
}
public void eigenschaftenAnzeige(int i, int s, String[] name){
System.out.println("Die Logik von "+(i+1)+" liegt bei "+logik[i]+".");
}
}