Array mehrmals als Objekt erzeugen

Status
Nicht offen für weitere Antworten.

BoZA

Mitglied
Hallo liebe Javafreunde,

ich wende mich verzewifelt an euch, da ich nicht weiter komme.

Zur Problemdarstellung:

Ich muss ein Programm schreiben, dass unteranderem ein mehrmaliges erzeugen eines 4-stelligen Codes/Pin beinhaltet.
Nun hab ich mir gedacht, okay mach ich es eben mit einem Array und baue eine Klasse die diese Code bei bedarf mehrmals erzeugt und zurückgibt bzw. zuweist.

So mein stand eines Anfängers:

Meine Hauptklasse, die noch erweitert wird:
Code:
/**

import java.io.IOException;

public class SicherheitsprogrammMain
{
  public static void main(String[] args) throws IOException
  {
    Sicherheitsprogramm check = new Sicherheitsprogramm();
  }
}

Meine Klasse die mehrere Test beinhalten soll:
(im moment nur den einfachen Test, um zu den zufallserzeugten 4-Stelligen Code zuzuweisen)

Code:
import java.io.IOException;

public class Sicherheitsprogramm
{
  private int pin1[];

  public Sicherheitsprogramm()
  {
    einfacherTest();
  }
  public void einfacherTest()
  {
    pin1[] = MeinPinBuilder.lieferePin();
  }
}

Die Klasse die Zufallszahlen generiert:
Code:
import java.util.Random;

public class MeinRandom extends Random
{
  /** Erzeugt den Generator */
  public MeinRandom()
  {
  	super();
  }
  /** Die Oeffentliche Methode erzeugt die Zufallszahl aus einem definierten Bereich
   * @param min - die kleinste Grenze des Bereiches
   * @param max - die größte Grenze des Bereiches
   * @return eine ganze Zahl aus dem Bereich*/
  public int nextInt(int min, int max)
  {
  	return this.nextInt(max - min + 1) + min;
  }
}

Den den 4-stelligen Code erzeugen soll (als Array):
Code:
public class MeinPinBuilder
{
  private int[] pin = new int[4];
  
  public MeinPinBuilder()
  {
    legePinAn();
  }
  private void int[] legePinAn()
  {
    MeinRandom zufall = new MeinRandom();
    for(int index = 0; i < pin.length; i++)
    {
      pin[index] = zufall.nextInt(1,9);
    }
  }
  public int[] lieferePin()
  {
    return this.pin[];
  }
}

Was bisher funktioniert: gar nix: :shock: :shock:

Ich hoffe ihr könnt mir ein wenig helfen. Ich bedanke mich im Voraus!!!

MfG BoZA
 

Campino

Top Contributor
Was erwartest du den, was passieren soll? Das Programm hat keinerlei Code, der eine Ausgabe erzeugen würde, woran willst du sehen, [ob] was passiert?
 

Leroy42

Top Contributor
Nur mal so als Beispiel:
Code:
for(int index = 0; i < pin.length; i++) 
    { 
      pin[index] = zufall.nextInt(1,9); 
    }

Kommst du hier nicht mit den Variablen index und i durcheinander?
 

ARadauer

Top Contributor
kann es sein, dass du hier von einer Klasse eine Objekt Methode aufrufst?
Code:
MeinPinBuilder.lieferePin();

entweder lifere Pin static machen oder MainPinBuilder instanzieren.
 

Leroy42

Top Contributor
ARadauer hat gesagt.:
kann es sein, dass du hier von einer Klasse eine Objekt Methode aufrufst?
Code:
MeinPinBuilder.lieferePin();
:shock:
Richtig!

Der Code ist also noch nicht mal kompilierbar!
 

BoZA

Mitglied
So erstmal danke für eure hilfe.

Ich hätte die Codes vor dem abschicken nocmal überprüfen sollen...

sorry nochmal dafür.

Hier nochmal das abbildt der verbesserten MeinPinBuilder.java:
Code:
public class MeinPinBuilder
{
  public MeinPinBuilder()
  {
    super();
  }
  public static int[] lieferePin()
  {
    int[] pin = new int[4];
    MeinRandom zufall = new MeinRandom();
    for(int index = 0; index < pin.length; index++)
    {
      pin[index] = zufall.nextInt(1,9);
    }
    return this.pin;
  }
}

Und hier nochmal das Sicherheitsprogramm.java (mit ausgabe sry!):
Code:
import java.io.IOException;

public class Sicherheitsprogramm
{
  private int pin1[];
 
  
  public Sicherheitsprogramm()
  {
    einfacherTest();
  }
  public void einfacherTest()
  {
    pin1[] = MeinPinBuilder.lieferePin();
    System.out.println(pin1[0]);
    System.out.println(pin1[1]);
    System.out.println(pin1[2]);
    System.out.println(pin1[3]);
  }
}

Sry nochmal....
Ich hänge jetzt noch an Zeile 15 fest des Sicherheitsprogramm.java

Sehe ich das nicht richtig? Ich habe im MeinPinBuilder das Array als return zumindest schon mal rückgabefähig gemacht. UNd wollte im Sicherheitsprogramm.java das dem pin1[] Array zuweisen....

In dieser "15" Zeile bekomme ich eben die Fehlermeldung:

not a statement

und

';' expected

was ich aber nicht nachvollziehen kann. Wie kann ich den Rückgabewert des Objekt vom MeinPinBuilder nun dem pin1[] von der Klasse Sicherheitsprogramm zuweisen?

Der Anfänger BoZA
 

ARadauer

Top Contributor
ja lass die [] weg

pin1 = MeinPinBuilder.lieferePin();

es sollte ja auch private int[] pin1; heißen
 

Leroy42

Top Contributor
ARadauer hat gesagt.:
es sollte ja auch private int[] pin1; heißen

Richtig! Daß auch die Deklaration
Code:
int pin1[];
erlaubt ist, war nur
eine unnötige Reminiszenz an C (C++) wo beispielsweise bei

Code:
int*     a, b;
nur a und nicht b als Zeiger auf int deklariert wurden.
 

BoZA

Mitglied
ARadauer hat gesagt.:
ja lass die [] weg

pin1 = MeinPinBuilder.lieferePin();

es sollte ja auch private int[] pin1; heißen

Wenn ich bei pin [] die eckigen Klammern weg lasse sagt er mir folgendes:

MeinPinBuilder.java

non-static variable this cannot be referenced from a static context @ line 18

cannot find symbol variable pin @ line 18

arbeite übrigens mit JCreatorLE 4.5 und JDK 1.6.0_03
 

ARadauer

Top Contributor
dann hast du aber einfacherTest static gemacht so wie es in deinem code noch nicht ist.

klar du kannst keine ojektvariable aus einer klassenmethode angreifen.
 

BoZA

Mitglied
AH Super klappt jetzt!!

Er wollte das "this" nicht!

Code:
import java.io.IOException;

public class Sicherheitsprogramm
{
  private int pin1[];
 
  
  public Sicherheitsprogramm()
  {
    einfacherTest();
  }
  public void einfacherTest()
  {
    pin1 = MeinPinBuilder.lieferePin();
    System.out.println(pin1[0]);
    System.out.println(pin1[1]);
    System.out.println(pin1[2]);
    System.out.println(pin1[3]);
  }
}

Und

Code:
public class MeinPinBuilder
{
  public MeinPinBuilder()
  {
    super();
  }
  public static int[] lieferePin()
  {
    int[] pin = new int[4];
    MeinRandom zufall = new MeinRandom();
    for(int index = 0; index < pin.length; index++)
    {
      pin[index] = zufall.nextInt(1,9);
    }
    return pin;
  }
}

Supi danke euch!!!

Aber muss ich das Thema schon abhacken? evtl. kommen noch fragen beim aufstocken des Programmes!
 

Leroy42

Top Contributor
Dein ganzer Code stimmt ja hinten und vorne nicht:

Code:
 public int nextInt(int min, int max) 
  { 
     return this.nextInt(max - min + 1) + min; 
  }

Du solltest die Methode nextInt() nicht so oft
aufrufen -- am besten gar nicht -- um dir keine
StackOverflowException einzufangen! :cool:

Jetzt, im Winter, kommen die nicht so gut...
 

Leroy42

Top Contributor
BoZA hat gesagt.:
Aber muss ich das Thema schon abhacken?
Das nennt man abharken (oder so ähnlich)

BoZA hat gesagt.:
evtl. kommen noch fragen beim aufstocken des Programmes!

Nicht nur eventuell, sondern sogar mit Sicherheit ( :cool: )

Aber die haben dann nix mit dem Thema Array mehrmals als Objekt erzeugen zu tun.
==>
Bei neuen Fragen auch ein neues Thema aufmachen
 

BoZA

Mitglied
Ohha,

Ähm die Klasse wurde mir vorgegeben.

Habe bis jetzt jene immer nur übernommen.... Was soll ich ändern?

Ruf die Methode durch die Schleife doch nur 4 mal auf!?

Rekursion == Abbruchbedingung ??
 

Leroy42

Top Contributor
Code:
import java.util.Random; 

public class MeinRandom extends Random { 
  public int nextInt(int min, int max) {return this.nextInt(max - min + 1) + min;} 
}

ist eine rekursive Methode und die braucht eine Abbruchbedingung, sonst:

Code:
->nextInt(1,9)
   ->nextInt(9-1+1) + 1
*BREAK*

Ich sehe gerade, daß das ja gar keine rekursive Methode ist, aber wo ist denn dann
die Methode int nextInt(int x) deklariert? :shock:

*DoppelBreak*

public class MeinRandom extends Random {

Jetzt sehe ich's erst, nextInt(int, int) ruft die nextInt(int)-Methode von Random auf;
und das sogar vollkommen korrekt.

*schandeübermeinhaupt* :oops:
 

BoZA

Mitglied
Leroy42 hat gesagt.:
Jetzt sehe ich's erst, nextInt(int, int) ruft die nextInt(int)-Methode von Random auf;
und das sogar vollkommen korrekt.

*schandeübermeinhaupt* :oops:

Ich freu mich doch über solche Beiträge!!!

Dadurch kann ich doch nur mein wissen steigern.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Array verkleinern Java Basics - Anfänger-Themen 2
J Array aus Numberfield Eingaben Java Basics - Anfänger-Themen 7
D Array List mit Objekten sortieren Java Basics - Anfänger-Themen 2
onlyxlia Anzahl Random Zahlen mit Scanner abfragen und in Array speichern Java Basics - Anfänger-Themen 10
Ü Java Array - Buchstaben als Zahlen ausgeben Java Basics - Anfänger-Themen 22
Ü Zweidimensionales Array in der ersten Zeile deklarieren Java Basics - Anfänger-Themen 13
Thomas Uppe 2D Array Reihenfolge vermischen Java Basics - Anfänger-Themen 4
T array auslesen Java Basics - Anfänger-Themen 2
Nitrogames Variablen Variable aus JOptionPane Abfrage in Array einfügen Java Basics - Anfänger-Themen 4
moini Auf Array aus Superklasse zugreifen? Java Basics - Anfänger-Themen 2
J ArrayList in 2D-Array konvertieren. Java Basics - Anfänger-Themen 48
M NullPointerException: Cannot read the array length because "this.Kinder" is null Java Basics - Anfänger-Themen 1
P Wieso kann ich als Index für einen Array einen Char angeben? Java Basics - Anfänger-Themen 3
Finn_lol Fehlermeldung bei Schleife mit Array Java Basics - Anfänger-Themen 4
Proxy Chars vor array übergabe toLowerUpcase Java Basics - Anfänger-Themen 14
iAmFaiinez Primzahlen Tester ohne Array Java Basics - Anfänger-Themen 4
S array 2 dimensional treppe Java Basics - Anfänger-Themen 3
S Array 2x2 Blöcke mit 0 und 1 Java Basics - Anfänger-Themen 10
C Array von Klassen Java Basics - Anfänger-Themen 2
julian0507 2Dim-Array Spaltensummen Java Basics - Anfänger-Themen 1
XWing Doppelte Zahlen im Array Java Basics - Anfänger-Themen 8
melisax Java 2D-Array Tabelle Java Basics - Anfänger-Themen 4
melisax Java Array Wert an bestimmtem Index angeben Java Basics - Anfänger-Themen 14
W Items löschen aus String Array vom Custom Base Adapter Java Basics - Anfänger-Themen 2
Proxy Stack erweitern mit neuem Array falls der alte voll ist!? Java Basics - Anfänger-Themen 5
E Array, nächste Zahl zur 5 ausgeben, wie? Java Basics - Anfänger-Themen 42
J Array.list vergleichen Java Basics - Anfänger-Themen 1
W Java-Code mit Array Java Basics - Anfänger-Themen 14
D Reflections & Generisches Array Java Basics - Anfänger-Themen 4
T Array Java Basics - Anfänger-Themen 2
T Array Java Basics - Anfänger-Themen 15
T Wörteranzahl im Array zählen Java Basics - Anfänger-Themen 9
Ostkreuz Zweidimensionaler Array Index Java Basics - Anfänger-Themen 2
S String Array Buchstaben um einen gewissen Wert verschieben Java Basics - Anfänger-Themen 4
R Images aus einem Array ausgeben Java Basics - Anfänger-Themen 3
R 2d Array individuell machen Java Basics - Anfänger-Themen 4
D 2D Char Array into String Java Basics - Anfänger-Themen 2
J Array Median bestimmen Java Basics - Anfänger-Themen 6
S Array Maximum bestimmen mit for und foreach Java Basics - Anfänger-Themen 7
S Prüfen ob ein zweidimensionales Array rechteckig ist Java Basics - Anfänger-Themen 4
N Array Java Basics - Anfänger-Themen 1
J Array Mittleren Wert bestimmen Java Basics - Anfänger-Themen 2
D OOP Array einem Objekt zuweisen Java Basics - Anfänger-Themen 2
O Zahlen aus einem char-array per char + Zeichen addieren Java Basics - Anfänger-Themen 2
S leeres Array statt Null Pointer Exception ausgeben Java Basics - Anfänger-Themen 20
S Inhalte aus Array vergleichen und Max ausgeben Java Basics - Anfänger-Themen 3
M 2d array ohne längen anlegen Java Basics - Anfänger-Themen 4
S Bestimmte werte aus einem Array löschen Java Basics - Anfänger-Themen 2
S Ausgeben wie oft ein Wert in einem Array vorkommt Java Basics - Anfänger-Themen 7
E Reihenfolge der Werte umdrehen (mittels statischem int-Array Java Basics - Anfänger-Themen 3
O 2 Dimensionales Array Java Basics - Anfänger-Themen 6
M Bubble Sort - Int[] Array sortieren Java Basics - Anfänger-Themen 2
javaBoon86 Array mehrere Dimensionen Java Basics - Anfänger-Themen 10
B Array nach Elementwerten sortieren? Java Basics - Anfänger-Themen 1
B Explizit Array definieren geht nicht? Java Basics - Anfänger-Themen 14
D Kleinste Zahl in Array finden die vorher noch errechnet werden müssen. Java Basics - Anfänger-Themen 4
L Gegebenes Array sortieren, indem zufällige Zahlenpaare aus Array ausgewählt werden Java Basics - Anfänger-Themen 14
Say 2-DIM Array Code lesen und verstehen Java Basics - Anfänger-Themen 5
N Array beim erstellen mit Werten füllen Java Basics - Anfänger-Themen 6
C Java Array Struktur, welche ist wann besser? Java Basics - Anfänger-Themen 12
Temsky34 Array IndexOf nicht verfügbar Java Basics - Anfänger-Themen 18
belana wie am besten 2D Array von String to Integer Java Basics - Anfänger-Themen 18
S Array mit Methode löschen Java Basics - Anfänger-Themen 2
J Java To String Methode, Array mit For-Schleife Java Basics - Anfänger-Themen 2
E Durch Muster in Array iterieren Java Basics - Anfänger-Themen 3
L Frage zum Array Java Basics - Anfänger-Themen 1
C 2D Array Ausgabe mit for-Schleife i,j Java Basics - Anfänger-Themen 4
D Methode: Array Reihenfolge tauschen Java Basics - Anfänger-Themen 3
julian0507 Array aus Methode in anderer Methode sichtbar machen Java Basics - Anfänger-Themen 10
P Array vom Typ Klasse Java Basics - Anfänger-Themen 18
Lion.King Array deklarieren und initialisieren Java Basics - Anfänger-Themen 5
P Array-Objekte-Aufruf Java Basics - Anfänger-Themen 22
A CSv.Datei einlesen und die werte in zweidemosional Int Array speichern Java Basics - Anfänger-Themen 9
M Methoden Zweidimensionaler Array mit Setter Methode ändern Java Basics - Anfänger-Themen 4
AkiJou Zeile in 2d Array löschen Java Basics - Anfänger-Themen 2
LilliCherry Array in einer Zeile ausgeben Java Basics - Anfänger-Themen 6
A Elemente in einem Array Java Basics - Anfänger-Themen 5
A Vorkommende Farben ermittel und als Array zurückgeben Java Basics - Anfänger-Themen 7
AhmadSlack Array Java Basics - Anfänger-Themen 7
Jambolo Kartenhand Array Java Basics - Anfänger-Themen 14
ravenz Schleife mit for über String Array „zahlen“und prüfen ob Wert „a“ oder „b“ oder „c“ entspricht (mittels || ) Java Basics - Anfänger-Themen 4
S Eine Variable in einem Array speichern Java Basics - Anfänger-Themen 5
T Methode, die prüft ob in einem Int-Array maximal 2 Zahlen enthalten sind, die größer als ihr Vorgänger sind Java Basics - Anfänger-Themen 5
T String Array Fehler beim Index Java Basics - Anfänger-Themen 3
krgewb byte-Array, das ein Bild repräsentiert Java Basics - Anfänger-Themen 1
1 Array rekursiv durchlaufen Java Basics - Anfänger-Themen 8
I Methoden Wieso wird mein Array "a" verändert und meine Variable "a" nicht? Java Basics - Anfänger-Themen 4
EykS 3D Druckdatei basierend auf 3D Array? Java Basics - Anfänger-Themen 3
sserio Array funktioniert nicht Java Basics - Anfänger-Themen 2
sserio Iterierung über ein zweidimensionales Array Java Basics - Anfänger-Themen 16
sserio Zweidimensionales Array [][] wird untereinander ausgegeben Java Basics - Anfänger-Themen 14
Chris.089 2 Werte im Array tauschen Java Basics - Anfänger-Themen 6
D EinMalEins mithilfe einer for-Schleife und Array Java Basics - Anfänger-Themen 1
L Unbekanntes Problem mit 2d Array Java Basics - Anfänger-Themen 6
L Gridmuster in einem Array Java Basics - Anfänger-Themen 2
sgtcoopa Array übergeben Schleife Java Basics - Anfänger-Themen 0
B Compiler-Fehler Array aus Objekten übergeben Java Basics - Anfänger-Themen 7
padde479 Array Multiplikation der ersten n Zahlen Java Basics - Anfänger-Themen 7
G zweidimensionales int Array sortieren Java Basics - Anfänger-Themen 57
W Array ausgeben Java Basics - Anfänger-Themen 29

Ähnliche Java Themen

Neue Themen


Oben