Variablen Array Länge über den Konstruktor definieren

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;
    }

}
 

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.
 

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.
 

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
I Array Länge in Klasse festlegen Java Basics - Anfänger-Themen 1
Csircc Neuer Array mit geringerer Länge und selben werten. Java Basics - Anfänger-Themen 2
districon 2D Array - Länge zuweisen Java Basics - Anfänger-Themen 1
t2im Java Array-Länge ändern? Java Basics - Anfänger-Themen 22
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
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

Ähnliche Java Themen

Neue Themen


Oben