Variablen Array Länge über den Konstruktor definieren

G

Goldenprime

Mitglied
Ich arbeite gerade an einer Klasse die Objekte mit einem Array Attribut haben sollen, aber die länge dieses Arrays ist für jedes der Objekte verschieden, weshalb die Variable für die Arraylänge im Konstruktor übergeben werden muss. Mein Problem ist jetzt, dass obwohl ich im Konstruktor den gewünschten Wert übergeben kann, der dann in ein Anderes Attribut der Klasse Übergeben wird, welches dann im Längenparameter des Arrays steht, die Länge des Arrays immer 0 ist und nicht der Wert den ich ursprünglich im dem Konstruktor übergeben habe.
Das Hier bezieht sich auf das Attribut InputState[] und der Konstruktor ist Logischerweise UniGate.

Java:
package com.ic.logic.pro;

public class UniGate {
    public UniGate(final int InputCount, String Type) {
        if(Type == "and" || Type == "or" || Type == "xor" || (Type == "not" & InputCount == 1) || (Type == "buffer" & InputCount == 1)) {
    this.InputCount = InputCount;
    Type2 = Type;
            }
            else {
                System.out.println("invalid command");
            }
    }
    private String Type2;
    private int InputCount;
    private boolean Status = false;
    private int[] InputState = new int[InputCount];
    public int getInputState(int Number) {
        return InputState[Number];
    }
    public void setInputState(int Number, int State) {
        InputState[Number] = State;
        System.out.println(InputState.length);
        Refresh();
    }
    public void Refresh() {
        int i = 0;
        int result = 0;
        while(i<InputCount) {
            if(InputState[i] == 1) {
                result ++;
            }
            i++;
        }
        if (result == InputCount & Type2 == "and") {
            Status = true;
        }
        else if (result > 0 & Type2 == "or") {
            Status = true;
        }
        else if (result == 1 & Type2 == "xor") {
            Status = true;
        }
        else if (result == 0 & Type2 == "not") {
            Status = true;
        }
        else if (result == 1 & Type2 == "buffer") {
            Status = true;
        }
        else {
            Status = false;
        }
    }
    public boolean GetStatus() {
        return Status;
    }

}
 
L

LimDul

Top Contributor
Anmerkung vorneweg - Strings vergleicht man man quals nicht mit ==.

Du musst das Array im Konstruktor erzeugen, nicht direkt in der Variablendeklaration. Die Variablen-Deklarationen werden gemacht, bevor der Konstruktor ausgeführt wird. Zu dem Zeitpunkt ist inputCount aber noch 0.
 
L

LimDul

Top Contributor
Noch ein paar Anmerkungen & ist das bitweise Und, du meinst mit Sicherheit && im Konstruktor.
Und Variablen und Methoden fangen in Java normalerweise mit einem Kleinbuchstaben an.
 
G

Goldenprime

Mitglied
Also erst mal danke für die ganzen Tipps. Ich habe es umgeschrieben und jetzt funktioniert es.
 
temi

temi

Top Contributor
Noch eine Anmerkung bezüglich von Code-Konventionen.

In Java beginnen Klassennamen mit einem Großbuchstaben z.B. MeineTolleKlasse (sog. UpperCamelCase). Variablen- und Methodennamen beginnen mit einem kleinen Buchstaben, z.B. int meineVariable (sog. lowerCamelCase).

In deinem Code z.B. hier:
Java:
public void setInputState(int Number, int State) {
// wird zu
public void setInputState(int number, int state) {
(Du siehst hier schon an der Farbwahl, dass die Forensoftware die Namen "Number" und "State" als Klassen interpretiert. Noch ungünstiger ist, dass es in der Java-Klassenbibliothek schon eine Klasse "Number" gibt)

oder
Java:
private String Type2;
// wird zu
private String type2;
Wobei zusätzlich der Name möglichst genau ausdrücken sollte, welche Funktion die Variable/Methode genau hat. "type2" ist insofern kein guter Name.

EDIT:

In deinem Fall kommt der Name "Type2" daher, dass der Parameter ebenfalls bereits "Type" heißt. Das Problem lässt sich leicht lösen:
Java:
class Foo {
    private int type; // dieses "type" ist gleich "this.type"

    public Foo(int type) {
        type = type; // FEHLER!

        this.type = type; // RICHTIG: Mit "this" wird auf die Instanzvariable "type" referenziert
    }
}
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Erste Schritte Warum wird bei einem Array die Länge über Length ausgegeben? Java Basics - Anfänger-Themen 6
J Objekt-Array dynamischer Länge aus Benutzereingaben erstellen Java Basics - Anfänger-Themen 6
S Java Array Länge aus anderer Klasse lesen Java Basics - Anfänger-Themen 1
E Array-list mit einer bestimmten Länge Java Basics - Anfänger-Themen 17
C Array - Länge dynamisch übergeben Java Basics - Anfänger-Themen 7
N Array mit unbestimmter länge Java Basics - Anfänger-Themen 12
I Länge von mehrdimensionalen Array Java Basics - Anfänger-Themen 5
D Zweidimensionales Array (Länge) Java Basics - Anfänger-Themen 2
shiroX Input/Output Array erstellen / Länge Java Basics - Anfänger-Themen 3
C Datentypen Array-Einträge überhalb der Array-Länge - welcher Wert? Java Basics - Anfänger-Themen 5
S Länge eines Elements im String Array Java Basics - Anfänger-Themen 5
C Datentypen Array mit dynamischer Länge? Java Basics - Anfänger-Themen 14
P länge von array abfragen? Java Basics - Anfänger-Themen 2
G Array mit zufälliger Länge Java Basics - Anfänger-Themen 4
D Array anlegen ohne bekannte Länge? Java Basics - Anfänger-Themen 6
A array und seine länge Java Basics - Anfänger-Themen 5
T Länge von Strings im Array vergleichen Java Basics - Anfänger-Themen 2
N Array bei unbekannter Länge Java Basics - Anfänger-Themen 4
M unerklärbarer Fehler bei Array-Länge Java Basics - Anfänger-Themen 4
G Länge eines Array trimmen oder dynamisch verändern. Java Basics - Anfänger-Themen 3
J Char-Array mit variabler Länge zurückliefern. Java Basics - Anfänger-Themen 11
G Array-Länge bei Erzeugung noch unbekannt - wie erzeugen? Java Basics - Anfänger-Themen 12
G Länge eines zweidimensionalen array Java Basics - Anfänger-Themen 2
G Char oder Byte Array mit unbekannter länge erstellen? Java Basics - Anfänger-Themen 1
R länge eines array? Java Basics - Anfänger-Themen 6
A Länge einer Dimension in 2-dimensionalem Array ? Java Basics - Anfänger-Themen 2
X Zwei Dimensionales Array prüfen Java Basics - Anfänger-Themen 1
J Array Elemente werden nicht gefunden! Java Basics - Anfänger-Themen 6
K Rahmen erstellen mit mehrdimensionalem Array Java Basics - Anfänger-Themen 1
TimoN11 Array mit unterschiedlichen längen aktualisieren, dann als Methodenwert einsetzen Java Basics - Anfänger-Themen 1
G Bubblesort Array der Größe 10 Java Basics - Anfänger-Themen 1
M Initialen mit Array wiedergeben Java Basics - Anfänger-Themen 3
G Java 2-dimensionalen int-Array Summe Java Basics - Anfänger-Themen 2
G Array Werte addieren Java Basics - Anfänger-Themen 4
C Größte Zahl aus einem Array ermitteln(als statische Methode) Java Basics - Anfänger-Themen 31
G Methoden Methode die aus einem Array ein Index ausgibt? Java Basics - Anfänger-Themen 2
L Array Rotation Java Basics - Anfänger-Themen 4
D Ausgabe von Array Java Basics - Anfänger-Themen 2
R String in char-Array übertragen Java Basics - Anfänger-Themen 5
D Input/Output fehlerhafter Algorithmus zum Ersetzen von Array-Werten nach logischem Schema Java Basics - Anfänger-Themen 1
J Ist es möglich einen int Array wirklich leer zu initialisieren oder zu füllen? Java Basics - Anfänger-Themen 21
P Datentypen Array und String Java Basics - Anfänger-Themen 2
Zeppi Array Java Basics - Anfänger-Themen 2
kazzam94 Methode soll Array von Boolean zurückgeben Java Basics - Anfänger-Themen 5
Zeppi Jagged Array Java Basics - Anfänger-Themen 6
J Buchstabenhäufigkeit mit Array und Ausgabe des häufigsten Buchstaben Java Basics - Anfänger-Themen 25
B Konstruktor mit Array als Parameter Java Basics - Anfänger-Themen 3
U Muster in einem Array erkennen Java Basics - Anfänger-Themen 8
L Array mit Wörtern gestalten Java Basics - Anfänger-Themen 2
Gaudimagspam Nummern generieren Array Java Basics - Anfänger-Themen 4
Eule25 Methode mit Array Java Basics - Anfänger-Themen 4
J Methoden Frage: Array-Werte in anderer Methode ändern Java Basics - Anfänger-Themen 4
FelixN Array mit verschiedene Datentypen als Rückgabewert? (Long und Double) Java Basics - Anfänger-Themen 3
P Nutzer entscheiden lassen, wie viele Zahlen dieser in ein Array eingeben möchte. Java Basics - Anfänger-Themen 6
J Array; Elemente kopieren Java Basics - Anfänger-Themen 17
JD_1998 Array-Position aus einer Methode in einer anderen ausgeben (Kurze Frage) Java Basics - Anfänger-Themen 2
JD_1998 Random Array sortieren mit Hilfe einer Methode Java Basics - Anfänger-Themen 4
M Objekte in Array speichern und ausgeben Java Basics - Anfänger-Themen 17
C Array-Werte werden gemischt, ohne Logik Java Basics - Anfänger-Themen 2
A eine neue normale String-Array von einer String-Array, die in for schleife ist, schaffen Java Basics - Anfänger-Themen 3
A keine Ergebnisse - String nummer in array nummer converting Java Basics - Anfänger-Themen 1
Z Char Array an zufälligen stellen mit einem "x" füllen. Java Basics - Anfänger-Themen 4
P JSON-Array auf Excel-Spalten verteilen? Java Basics - Anfänger-Themen 5
V Array aus Klasse um vererbte Elemente erweitern Java Basics - Anfänger-Themen 3
J Array über Getter erlangen Java Basics - Anfänger-Themen 34
K Übergabe von Werten (zweidimensionales Array) aus einer Methode an zweidimensionales Array in main() Java Basics - Anfänger-Themen 3
T Array füllen Java Basics - Anfänger-Themen 11
P Was genau bringt mir es ein Array in eine Liste zu bringen Java Basics - Anfänger-Themen 3
S Auf Array aus Objekten zugreifen? Java Basics - Anfänger-Themen 1
A Speicherbereich von Array nicht zusammenhängend? Java Basics - Anfänger-Themen 8
S Java Array Probleme Java Basics - Anfänger-Themen 3
S Java Array Problem... Java Basics - Anfänger-Themen 2
C 2dimensionales array, Lagerverwaltung Java Basics - Anfänger-Themen 64
P Verschachtelte Array Liste Java Basics - Anfänger-Themen 2
P Performance Array und Liste Java Basics - Anfänger-Themen 13
M Array Summe bestimmen? Java Basics - Anfänger-Themen 14
parrot Array Übung Java Basics - Anfänger-Themen 25
parrot Array: Methode fügeHinzu Java Basics - Anfänger-Themen 13
parrot Array Java Basics - Anfänger-Themen 4
L 2 Dimensional Array werte überschreiben Java Basics - Anfänger-Themen 1
A char array wird überschrieben Java Basics - Anfänger-Themen 6
L Zufälliges 2d array befüllen Java Basics - Anfänger-Themen 27
L x und y Koordinaten in ein Array schreiben Java Basics - Anfänger-Themen 7
U Dreiecks-Matrix mit Array Java Basics - Anfänger-Themen 3
I Java zweidimensionales array befüllen mit for-schleife Java Basics - Anfänger-Themen 2
P Enums in Array abspeichern Java Basics - Anfänger-Themen 4
J Array Speicherplatz berechnen Java Basics - Anfänger-Themen 35
L Iterieren durch eine ArrayList. Integer Array wird übergeben Java Basics - Anfänger-Themen 17
Z Matrix Klasse mit Mehrdimensionalen Array (Addition, Multiplikation, to String) Java Basics - Anfänger-Themen 57
Z Methoden Array horizontal spiegeln Java Basics - Anfänger-Themen 19
K Array alle Werte aufsummieren und ausgeben Java Basics - Anfänger-Themen 6
J zweidimensionales Array Java Basics - Anfänger-Themen 1
A Array Elemente extrahieren ! Java Basics - Anfänger-Themen 4
M Quiz in Java programmieren mit Array Java Basics - Anfänger-Themen 8
A Array aufaddieren ! Java Basics - Anfänger-Themen 5
F Auto String mit Array Name aus Datei... oder so ähnlich Java Basics - Anfänger-Themen 4
H Ein gegebenes Int Array zu Zwei Arrays zurück geben Java Basics - Anfänger-Themen 6
J Elemente in einem 2D-Array summieren Java Basics - Anfänger-Themen 6
J String aus einem Array entfernen Java Basics - Anfänger-Themen 10
J Array differenzieren Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Anzeige

Neue Themen


Oben