da meine Suche im Forum nicht so erfolgreich für mein Problem war, hoffe ich durch diesen Post weiter zu kommen.
Ich möchte in einer Klasse einen Array füllen lassen. Den Inhalt dieses Array möchte ich dann in meine Main übergeben. Ich bin noch am Anfang meiner Java-Kenntnisse, daher könnte es bei meinem folgenden Code Schönheitsfehler geben. Hoffe es ist nicht alzu schlimm für die 'Profis' :lol:
Code:
//Klasse Menge
package newFolder;
import java.util.*;
public class menge
{
int [] menge = new int [4];
int menge()
{
Random r = new Random();
boolean[] tun = new boolean[4];
for (int s = 0; s<4; s++)
{
boolean j = r.nextBoolean();
tun[s] = j;
if (j == true)
{
menge[s] = 1;
}
else
{
menge[s] = 0;
}
}
return menge; // Soll übergeben werden in die Main
}
}
// Main
package newFolder;
import java.math.*;
public class Main {
public Main() {
}
public static void main(String[] args) {
menge test = new Main();
System.out.println( test.menge() );
//Möchte hier z.B. die einzelnen Werte des Array ausgeben, hier liegt auch auch mein Problem
}
}
wäre nett wenn mir einer helfen könnte. Oder lieg ich mit dem was ich bisher gemacht habe vollig falsch?
Genau. Außerdem sollten Instanzvariablen immer private deklariert werden. Und wenn du ein Array zurückgeben willst, dann mach das doch einfach... :wink:
Dein Code könnte so aussehen:
Code:
public class Main {
public static void main(String[] args) {
Menge m = new Menge();
int[] x = m.menge();
for(int i = 0; i < x.length; i++) {
System.out.println(x[i]);
}
}
}
...und leicht modifiziert
Code:
import java.util.*;
public class Menge {
private int[] menge;
public Menge() {
menge = new int[4];
}
public int[] menge() {
Random r = new Random();
boolean[] tun = new boolean[4];
for (int s = 0; s<4; s++)
{
boolean j = r.nextBoolean();
tun[s] = j;
if (j == true)
{
menge[s] = 1;
}
else
{
menge[s] = 0;
}
}
return menge; // Soll übergeben werden in die Main
}
}
public int[] menge() {
Random r = new Random();
boolean[] tun = new boolean[4];
for (int s = 0; s<4; s++)
{
boolean j = r.nextBoolean();
tun[s] = j;
menge[s] = j ? 1 : 0;
}
return menge; // Soll übergeben werden in die Main
}
passiert eigentlich noch was mit dem Array tun ? weil er so ein bisschen rumhängt und keine weitere Bedeutung hat?!
desweiteren würde ich in der for schleife nicht s < 4 schreiben sondern s < menge.length. So kannst du die länge des arrays ändern ohne dir gedanken zu machen, dass die for schleife nicht mehr richtig ist