Setzen und Lesen eines Objektes (Enum?)

ImpCaligula

Mitglied
Hallo....

ich stehe gerade kreativ auf dem Schlauch und weiß keinen Ansatz, wie ich beginnen soll. Irgendwie gerade Blockade (liegt es am Wetter?). Ich versuche mal meine erforderliche Aufgabenstellung zu erklären.

Es gibt sogenannte Module (das sind einzelne Objekte), welche vordefinierte Werte haben.
Modul_1 hat eine Eigenschaft Name, Anzahl von möglichen Parametern, ReadOnly ja oder nein....
Modul_2 hat die gleichen Eigenschaften, ebenso wie Modul_3 und Modul_4....

Ok - ich fasse zusammen.
1) Es gibt Modul_1 bis Modul_4
2) Jedes Modul hat die gleiche Anzahl und Bezeichnungen an Propertys
3) Achtung: Aber jedes Modul hat in diesen Propertys andere Standardwerte!
4) Diese Werte sind bei Start gesetzt - und können nicht verändert werden.

Also würde ich doch glatt für die Module eine Enum nehmen.
Bietet sich an - finde ich. Dann hätte ich 4 Enum "Werte" von Modul_1 bis _4 und die entsprechenden gesetzten Werte in jedem Modul...

So... nun kommt die Steuerklasse (oder das Steuerenum).
Hier soll es eine set() und get() Methode geben. Bei set() kann ich nun ein Modul setzen und habe automatisch für mein Objekt alle Standardwerte vom entsprechendem Enum.

Also - set() Methode sagt - Du bist Modul_1 und dadurch kann ich über modul.name heraus bekommen, dass ich Modul_1 habe.... oder modul.anzahl eben den Wert für die maximale Anzahl etc....

Ich will aber in der Steuerklasse so gut wie keine Funktionalität haben. Ich will eigentlich nur sagen set(Modul_1) .... oder ich könnte setModul_1() setModul_2() ... machen.

Egal wie. In der Steuerklasse muss ich für das aktuelle Objekt sagen können welches Modul es ist und dann alle entsprechenden Werte bekommen.

Denkbar wäre auch (und mir am liebsten) ein verschaltetes Enum - wo ich eben den WERT Modul auf _1 _2 _3 oder _4 setzen kann und dadurch die entsprechenden Enum Property Konstanten bekomme. Ja das wäre mir am liebsten.... dass das Enum (verschachtelte Enum) selbst nur wissen muss, wenn _1 _2 _3 oder _4 gesetzt, sind die Enum Konstanten aktuell so oder so...

Ich hoffe habe es einigermaßen verständlich umschrieben...
Danke für Eure Hilfe!
 

ImpCaligula

Mitglied
Ok... nochmals bisschen besser Erklärung... :D

Steuerklasse
Modul md = newModul();
md.setModul(1);

Nun müsste "drüben" das Enum wissen, dass durch .setModul(1) das Modul_1 gesetzt ist. Sprich, wenn ich jetzt aufrufe:

md.getName();
md.getAnzahl();
md.getReadOnly();

...müsste ich alle (festen Konstanten) Werte aus Modul_1 bekommen. Aber wenn ich auf einmal sagen...

md:setModul(2);

...dann liefern alle md.getMethoden() auf einmal die konstanten Werte aus der Enum Beschreibung zu Modul_2
 

dennisbauer

Aktives Mitglied
Wenn ich das nun richtig verstanden habe, benötigst du ein Interface mit den Gettern und Settern vordefiniert und lässt deine einzelnen Modulobjekte diese implementieren.
Dann kannst du in deiner Controllerklasse die Instanzen hiervon ablegen, ob HashMap oder pur als Variablen. Wenn du eine HashMap nimmst, kannst du deinen Ansatz des Enums verwenden und diesen als Key verwenden.
Wenn du also über eine Methode den Wert ModulEnum.MODUL_2 setzt, dann kannst du dir aus der Hashmap und der Eigenschaft des Interfaces, einfach alle Werte ausgeben lassen.
 

ImpCaligula

Mitglied
In der Controllerklasse gibt es nur ein/e Instanz/Objekt....

Sprich das Objekt md setzt mit setModule(1 oder 2 oder 3....) immer wieder den Modultyp fest und alle getMethoden() holen sich je nach vorher gesetzte setModule(nummer) die entsprechenden Werte.

Da ich nur ein Objekt / eine Instanz habe in der Controllerklasse, verstehe ich den HasMap Bezug nicht. WIeso in der Controllerklasse?

Danke aber für Deine Antwort!
 

dennisbauer

Aktives Mitglied
Ich dachte du möchtest mehrere Instanzen von Modulen verwalten und über den Controller auf ein Modul zugreifen indem du die setModule-Methode aufrufst.

Woher kommen die Werte denn her? Aus der Instanz des Modul-Objektes?
 

ImpCaligula

Mitglied
Nein sorry... es gibt zur Laufzeit nur eine Instanz des Moduls (der Modul Klasse / Enum).

Eigentlich würde ich es ja so machen. Denke das ist verständlicher.

Abstrakte ElternKlasse Modul
KindKlasse Modul_1 (mit entsprechenden eigenen Default Eigenschaften)
KindKlasse Modul_2 (mit entsprechenden eigenen Default Eigenschaften)
KindKlasse Modul_3 (mit entsprechenden eigenen Default Eigenschaften)


KontrollerKlasse Main (...so hier würde ich eigentlich das dann so machen....)
Modul md = new Modul_1();
md.getID();
md.getName();
md.getAnzahl();

....so jetzt will ich das Objekt "verbiegen"... und bekomme bei den getMethoden() die entsprechenden Werte...

md = new Modul_2();
md.getID();
md.getName();
md.getAnzahl();


Aber... so "darf / soll" ich das nicht machen. Es soll in einem (am besten) Enum definiert und geregelt werden. Hoffe so ist die Grundidee verständlicher :)
 

dennisbauer

Aktives Mitglied
Ich verstehe jetzt das Problem nicht so ganz. Zum einen schreibst du, es gibt nur eine Instanz des Moduls, zum anderen schreibst du in der Kontroller-Klasse nun zwei Instanzen hin.

Wäre der Vorschlag hier nun geeigneter nach deiner Idee? http://pastebin.com/ELdp5Wmp
Ansonsten muss ich mich hier geschlagen geben, da ich scheinbar nicht das Problem erkenne.
 

stg

Top Contributor
Und wieso nimmst du nun kein Enum? Mir jedenfalls ist vollkommen unklar, was eigentlich dein Problem ist.
 

ImpCaligula

Mitglied
Zum einen schreibst du, es gibt nur eine Instanz des Moduls, zum anderen schreibst du in der Kontroller-Klasse nun zwei Instanzen hin.

Oh man(n) :D ... ich ***** muss das Wetter sein....

Modul md = new Modul_1();
...
...
...
md = Modul_2....

Ein new zu viel... das Objekt soll einmal auf Modul_1 "zeigen"... dann zur Laufzeit auf Modul_2 gebogen werden und so weiter...
 

ImpCaligula

Mitglied
Und wieso nimmst du nun kein Enum? Mir jedenfalls ist vollkommen unklar, was eigentlich dein Problem ist.


Ok... ich habe ein Enum ... das müsste einmal die "Objekte" Modul_1 bis Modul_4 haben... welche wiederum eine Latte von Propertys mit Standard Werten haben. Das an sich wäre ja kein Problem für mich! Ich denke mit einem verschachtelten Enum komme ich da hin...

Aber ich stehe gerade auf dem Schlauch was die Kontroller Klasse angeht.
Wie kann ich hier dann sagen das Objekt md ist vom Enum MODUL nun das Enum Objekt Modul_1 und schwupss hat md bei allen getMethoden() die Default Konstanten von Modul_1 ... und wenn ich set auf Modul_2 mache eben alle Default Werte des Modul_2 Enum Objektes....

Da stehe ich auf dem Schlauch...
 

ImpCaligula

Mitglied
So ich habe mal ein bisschen getippt und zwei Beispiele gemacht....

Also... in meiner main() (andere Java Klassendatei) möchte ich gerne folgendes machen:

Java:
ModulType md = new ModulType();
md.setModulType(MODUL_TYPE_1);

Ab diesem Zeitpunkt (nach setModulType() ) kann ich nun alle Eigenschaften (Enum Konstanten) für das Objekt md abrufen....

Java:
md.getMDID();
md.getMDName();
md.getDoorCount();
md.getAccessPoints();

Um dies zu erreichen habe ich einmal die Klasse ModulType:

Java:
public class ModulType {
   
    private Integer mdID;
    private String mdName;
    private Integer doorCount;
    private Integer accessPoints;
   
    ModulType() {
    }
   
    public void setModulTyp() {
        //Hier fehlt mir die Idee
    }
   
    public Integer getMDID() {
       
        return this.mdID;
    }
   
    public String getMDName() {
       
        return this.mdName;
    }
   
    public Integer getDoorCount() {
       
        return this.doorCount;
    }
   
    public Integer getAccessPoints() {
       
        return this.accessPoints;
    }
}


Und einmal die benötigte Enum Klasse (ja muss das so machen) mit den Standard Konstanten:

Java:
public enum ModulTypeEnum {
   
    MODUL_TYPE_1(1, "Module Type 1", 1, 1),
    MODUL_TYPE_2(2, "Module Type 2", 2, 2),
    MODUL_TYPE_4(3, "Module Type 4", 4, 4),
    MODUL_TYPE_Z(4, "Module Type Zeitschalturh", 0, 0);
   
    private Integer id;
    private String mdName;
    private Integer doorCount;
    private Integer accessPoints;
   
    ModulTypeEnum(Integer id, String mdName, Integer doorCount, Integer accessPoints) {
        this.id = id;
        this.mdName = mdName;
        this.doorCount = doorCount;
        this.accessPoints = accessPoints;
    }
   
    public Integer getID() {
        return this.id;
    }
   
    public String getName() {
        return this.mdName;
    }
   
    public Integer getDoorCount() {
        return this.doorCount;
    }
   
    public Integer getAccessPoints() {
        return this.accessPoints;
    }
}

---
Mein Problem ist in der Klasse ModulType in der Methode setModulType()

Java:
public void setModulTyp() {
        //Hier fehlt mir die Idee
}

Ich möchte hier aus der main() eben mit Objekt.setModulType(MODUL_TYPE_1) die Info rüber schicken, dass es MODUL_TYPE_1 ist und die Klasse ModulType in dem Fall für dieses Objekt md alle Werte aus dem Enum an das aktuelle Objekt gibt, so das alle md.getMethoden die entsprechenden Werte liefern.

Ich hoffe nun ist es verständlicher ;)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
clemson Umgebungsvariable setzen und lesen Allgemeine Java-Themen 9
berserkerdq2 Was heißt es mit FXML Listener zu setzen ind Buttons zu erstellen? Allgemeine Java-Themen 6
TheSepp Java bestimmtes Array auf den Wert 0 setzen Allgemeine Java-Themen 32
Y Bild in JPanel setzen Allgemeine Java-Themen 2
C javax.mail.Message message.setreplyto() null setzen (keine replyto Adresse) Allgemeine Java-Themen 25
JavaNewbie2.0 Anführungszeichen setzen Allgemeine Java-Themen 3
OnDemand FTP4J Rechte setzen Allgemeine Java-Themen 1
J Mausposition setzen Allgemeine Java-Themen 2
N event_scheduler richtig setzen? Allgemeine Java-Themen 1
O log4j pfad per umgebungsvariable setzen Allgemeine Java-Themen 5
F JTextArea Cursor in die nächste Zeile setzen Allgemeine Java-Themen 2
G JDK setzen Allgemeine Java-Themen 4
H java.util.logging Formatter Optionen setzen Allgemeine Java-Themen 2
iB0T "goto" Befehl aus Batch in Java und Variablen wert immer wieder neu setzen Allgemeine Java-Themen 4
D ClassLoader für Variablen einer Klasse setzen Allgemeine Java-Themen 24
C Datentypen int in bytes zerlegen und wieder zusammen setzen Allgemeine Java-Themen 13
M Session-Parameter setzen? Allgemeine Java-Themen 10
D Alle Variablen final setzen ? Allgemeine Java-Themen 26
I %AppData% Variable für einen Prozess setzen Allgemeine Java-Themen 23
N java.util.Date - Zeit auf 00:00 setzen Allgemeine Java-Themen 3
T HTTP Skript für Passwortgeschützte Seite :: Häkchen setzen und Download Allgemeine Java-Themen 4
L Variablen Systemvariablen setzen Allgemeine Java-Themen 3
G JNDI Context setzen Allgemeine Java-Themen 3
S "Working Directory" setzen..? Allgemeine Java-Themen 3
A Datei als Object einlesen und das Object als Singleton instance setzen. Allgemeine Java-Themen 13
V Priorität der Event-Handlings setzen Allgemeine Java-Themen 4
N Timeout setzen Allgemeine Java-Themen 10
P Einzelne Bits in einem Byte-Array setzen Allgemeine Java-Themen 2
X JTable mit Checkboxen -> Setzen (true/false) der Checkboxen per Mouseklick... Allgemeine Java-Themen 3
S String intelligent zusammen setzen Allgemeine Java-Themen 8
A Umgebungsvariable unter Windows Vista setzen Allgemeine Java-Themen 60
N ranges setzen Allgemeine Java-Themen 5
O getRuntime().Exec() - Environment - Variablen setzen? Allgemeine Java-Themen 2
Y beliebige Dateigröße setzen Allgemeine Java-Themen 10
G Proxy- Server setzen Allgemeine Java-Themen 2
thE_29 Rechnungen (Sättigung setzen) verschnellern Allgemeine Java-Themen 13
M nichtreferenzierte Objekte auf NULL setzen -> Performance Allgemeine Java-Themen 4
M Focus setzen - Frage zu FAQ Artikel Allgemeine Java-Themen 6
reibi Priorität setzen bei Thread Allgemeine Java-Themen 11
0 Taste setzen Allgemeine Java-Themen 2
B Listener dynamisch setzen Allgemeine Java-Themen 6
F Werte von Member-Variablen erst im Konstruktor setzen? Allgemeine Java-Themen 7
P Datum in einer DateComboBox setzen Allgemeine Java-Themen 7
MQue Datum in ComboBox setzen Allgemeine Java-Themen 9
0 Timeout für Thread setzen? Allgemeine Java-Themen 2
MQue Objektvariablen setzen Allgemeine Java-Themen 3
MQue Button Attribute setzen Allgemeine Java-Themen 14
L datum nach dem kopiervorgang neu setzen? Allgemeine Java-Themen 2
P JNI_CreateVM und -Xms –Xmx setzen Allgemeine Java-Themen 10
R Array komplett auf null setzen Allgemeine Java-Themen 10
B Choice setzen Allgemeine Java-Themen 5
O Environment Variable Setzen Allgemeine Java-Themen 2
O Schreibrechte setzen? Allgemeine Java-Themen 4
TheJavaKid Focus für KeyListener setzen Allgemeine Java-Themen 5
D Position des Mauszeigers setzen! Allgemeine Java-Themen 3
S Odnericon neu setzen/auslesen etc. Allgemeine Java-Themen 2
G Konsoleneingabe: vordefinierte werte setzen? geht das? Allgemeine Java-Themen 4
foobar java.library.path Property setzen Allgemeine Java-Themen 5
Z Parallel Port, setzen der einzelnen Pins Allgemeine Java-Themen 4
C Setzen der Cursorposition Allgemeine Java-Themen 2
G Standard-Drucker mit Java setzen Allgemeine Java-Themen 4
T Classpath per Java Programm setzen Allgemeine Java-Themen 9
D jdic classpath setzen Allgemeine Java-Themen 2
S Grafiken/ImageIcon setzen Allgemeine Java-Themen 24
S File Encoding im Programm setzen? Allgemeine Java-Themen 3
F Verfügbaren Heap-Speicher setzen Allgemeine Java-Themen 2
M Content-Type setzen und auslesen? Allgemeine Java-Themen 2
C Objekte null setzen? Allgemeine Java-Themen 7
R 11 GB File lesen ohne zu extrahieren Filedaten Bereich für Bereich adressieren dann mit Multi-Thread id die DB importieren Allgemeine Java-Themen 3
G Dateien lesen Allgemeine Java-Themen 3
OnDemand Excel lesen wie CSV Allgemeine Java-Themen 7
S Textdatei statt von Dateisystem aus .jar lesen Allgemeine Java-Themen 3
oskarS85 GeoTiff NDVI pixelweise lesen Allgemeine Java-Themen 2
R Lesen von Interfaces (Programm Vervollständigen) Allgemeine Java-Themen 10
OnDemand CSV lesen flexible Spalten Allgemeine Java-Themen 3
E Datentypen Wie kann ich die Längen der unterschiedlichen Ebenen aus einem Objekt lesen von dem ich weiß, dass es ein mehrdimensionaler Array ist? Allgemeine Java-Themen 3
S File lesen und schreiben Java 6 Allgemeine Java-Themen 2
J Die Letzte Zahl aus einer Text datei lesen Allgemeine Java-Themen 8
L Input/Output Kassenzettel lesen aus einem Bild Allgemeine Java-Themen 2
M Daten aus MatLab Datei lesen Allgemeine Java-Themen 8
G Excel Tabelle lesen und in neue Excel Tabelle einfügen Allgemeine Java-Themen 11
J File in Package erstellen & lesen mit Programmstart in externe Projekt Allgemeine Java-Themen 3
A File lesen Codierung Charset Allgemeine Java-Themen 5
E Socket Dynamische Klasse von ObjectOutputStream lesen. Allgemeine Java-Themen 8
D Mit Java PHP hashmap lesen Allgemeine Java-Themen 1
B Quellcode lesen - Aussortieren Allgemeine Java-Themen 3
A Steuerung von Spiel aus Datei lesen Allgemeine Java-Themen 0
F Best Practice Große Anzahl an Objekten speichern und lesen Allgemeine Java-Themen 19
L CSV File lesen, in ArrayList speichern und ausgeben Allgemeine Java-Themen 3
S Eigenschaften (hier Verknüpfung) eines Files lesen Allgemeine Java-Themen 2
OnDemand Java Barcode lesen Allgemeine Java-Themen 4
F Json in sql speichern und lesen Allgemeine Java-Themen 10
K Classpath Alle Classen aus einem Package lesen Allgemeine Java-Themen 7
X NetBeans Bilder und andere Dateien ins .jar schreiben und wieder aus .jar lesen Allgemeine Java-Themen 6
K Bestimmten Bereich eines Strings lesen Allgemeine Java-Themen 6
H Input/Output .txt Datei in Jar lesen Allgemeine Java-Themen 6
F Lesen effizienter als schreiben? Allgemeine Java-Themen 4
RalleYTN REST API ResponseType application/pdf lesen Allgemeine Java-Themen 0
R Inputstream lesen mit Pointer Allgemeine Java-Themen 0
javampir Input/Output Effizienz beim binären Lesen einer Datei Allgemeine Java-Themen 6

Ähnliche Java Themen

Neue Themen


Oben