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