Referenz auf Membervariable

Status
Nicht offen für weitere Antworten.
Hi, ich bin neu hier und bin mir nicht sicher ob ich hier richtig gepostet habe. Falls nicht einfach an die richtige Stelle verschieben. Ich hoffe ich kann mein Problem verständlich erklären und ihr habt eine Idee wie das zu lösen ist. Also ich versuche es mal. Hier die folgenden Konstrukte gibt es.


Code:
public abstract class CardData{
    
    //Exemplarisch können hier 100 Attribute registriert werden.
    //Ist eine einfache Implementierung
    private Object[] registeredObjects=new Object[100];
    private int attributeCounter=0;
    
    //Klasse für die Registrierungsdaten
    class Reg{
        
        String attributeName="";
        String attributeContent="";

        Reg(String an,String ac){
            attributeName=an;
            attributeContent=ac;    
        }
    }
    
    //Konstruktor
    protected CardData(){
        
    } 
    
    /**
     *  Einen Attribut mit seinem Namen und Inhalt registrieren. 
     *  Wobei ich den Namen aber nicht habe 
     */
    protected final void registerAttribute(String xxx,String attributeContent){
        registeredObjects[attributeCounter]=new Reg(XXX,attributeContent); attributeCounter++;
    }

    protected final void attributeChanged(String xxx){
        //neuen Inhalt holen und irgendwas damit machen.
    }
}




public class Human extends CardData{

    //Member
    private String humanName;

    //Konstruktor
    public Human(String humanName){
        setHumanName(humanName);
        super.registerAttribute(???,humanName);
    }
    
    public void setHumanName(String humanName){
        this.humanName=humanName;
        super.attributeChanged();
    }

    public String getHumanName(){
        return humanName;
    }

    
}

So das ist erst ein mal der Quellcode.
Falsche Sichbarkeiten sind zu vernachlässigen. Ich habe es nicht in der Form getestet !!!


Was ich möchte ist folgendes:

Ich möchte belibige "Daten"-Klassen erstellen, wie hier der "Human" zb., welche von CardData erben. Daraufhin möchte ich Attribute welche ich in meiner "Daten"-Klasse implementiere anmelden über die CardData.registerAttribute()-Methode. Das Problem ist dass ich ja nicht den AttributNamen registriere sondern den Inhalt des Attributes !?!?! Irgendwie müsste ich beides zusammen registrieren wie ich es mit der inneren Klasse Reg angedeutet habe. Der Sinn der ganzen Sache ist dass meine Superklasse, hier "CardData", über eine Änderung des Inhaltes des Attributes informiert wird. Darauf hin holen ich mir den neuen Inhalt das Attributes! Das Problem ist dass die Superklasse ja keine Ahnung hat was ich für Attribute in meiner Datenklasse habe. Ich brauch irgendwie eine direkte Beziehung zwischen AttributName und Attributinhalt. Ich könnte das wahrscheinlich kompliziert lösen aber ich möchte dass der jenige der von meiner Superklasse erbt so wenig wie möglich noch an Methoden zu implemtieren hat. Selbst bei dieser Implementierung muss ich bei der set-Methode "setHumanName()" die Änderung an die Superklasse melden. Und registrieren muss ich vorher auch noch. Das möchte ich aber schon nicht. Mir kommt es so vor als brächte ich sowas wie Referenzen auf eine Methode wobei das mein Problem glaub ich aber immer noch nicht löst.

Also noch mal zusammengefasst:
Es sollen Attribute einer Datenklasse registriert werden. Ich möchte bei einer Änderung des Inhaltes in der Superklasse darüber informiert werden und zugleich die inhaltliche Änderung bekommen. Das alles soll aber unter der Prämise erfolgen dass ich in der erbenden Klasse so wenig wie möglich explizit auf die Superklasse zugreife. Es soll dem Endbenutzer der meine Superklasse, vererbende nutzt, so einfach wie möglich gmacht werden.

Na mal sehen mich jemand verstanden und eine Idee hat. Ich bin auch noch unter dem folgenden Skypenick zu erreichen: UuugUuug

Alle anderen Kontaktdaten sind in meinem Profil.

Bitte helft mir. Und danke schon mal im Vorraus für eure Hilfe.
 
B

bygones

Gast
verzeih hab nicht alles durchgelesen.

ich wuerde eine andere struktur empfehlen, da diese mir zu kompliziert erscheint. Du hast x beliebige Klassen mit x beliebigen Variablen, wie willst du dann super.registerAttribute(???,humanName); ordnen. bzw mit super.attributeChanged(); woher weisst du welche der klasse sich welches attribut geandert hat.

Ich wuerde eine zentrale VerwalterKlasse machen (bei dir CardData). Wird in einer Klasse etwas veraendert (zb in Human) schickt diese Klasse (oder noch besser die Klasse die eigentlich die Aenderung veranlasst hat) eine Nachricht an den Verwalter mit allen infos die der Verwalter braucht (z.b. die geanderte variable)....
 
Danke schon mal für die Antwort.

Ja ich verzeihe dir noch mal dass du nicht alles durchgelesen hast. Die Idee hab ich so auch schon durch gespielt. Das was mich daran stört ist dass der Benutzer dann für jedes Attribut implementieren muss was zurückgesendet werden muss an den Verwalter und wie. Genau das möchte ich aber nicht. Aber anscheinend gibt es keine andere Variante. Ich daachte da eher an sowas wie dass es Methoden gibt mit der ich die deklarierten Methoden und Attribute aus einer Klasse auslesen kann und diese dynamisch aufrufen. Keine Ahnung ob es sowas gibt. Gruss
 
B

bygones

Gast
es geht schon dass man alle methoden bzw variablen einer klasse ausliest, doch das ist wesentlich komplexer. alle generalitaet in ehren, es wird aber mehr komplexer und komplizierter werden als gewollt.

mir faellt keine andere moeglichkeit ein, als dass die geaenderte Klasse (also human) selbst bescheid gibt dass sie sich geandert hat und was sich geaendert hat...

was soll den der verwalter dann mit den infos machen dass sich was geandert hat ? bzw was ist das ziel des projekts ?
 
Ich programmiere BlackBerries und da habe ich diese Methoden nicht gefunden. Kann sein dass die in der MicroEdition von java und den RIM-Appis nicht vorhanden sind. Ja das mit der Komplexität ist auch mein Problem. Ich werde wohl in der Superklasse verschiedene Methoden zur Verfügung stellen die alle möglichen Datentypen übernimmt. Wenn es dich interessiert kann ich ja später noch das Ergebnis posten. Auf alle Fälle hast du mir klar gemacht dass es wohl nicht anders geht. Die Änderungen die ich erhalte werden dann in einen Container eingtragen der die Daten in einen Stream an die richtige Stelle schreibt. So ungefähr zumindest.
 
B

bygones

Gast
hehe warte lieber noch bis die kommen, die sich mit der materie gut auskennen ;-) dass ich sag es geht nicht anders heisst nicht, dass es nicht geht ;-)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Hzrfa Objekte, Referenz Java Basics - Anfänger-Themen 5
I Grundsatzfrage: Belegt eine Referenz auf 'null' RAM, und wenn ja - wieviel ;-) ? Java Basics - Anfänger-Themen 5
O Warum bekommen wir nicht die Referenz vom zurückgegebenen Objekt? Java Basics - Anfänger-Themen 4
P Wie rufe ich Methoden mit einer Referenz auf eine Klasse||Objekt auf Java Basics - Anfänger-Themen 4
C Kopie oder Referenz ? Java Basics - Anfänger-Themen 5
A Binärbaum rekursiv durchsuchen und Referenz zurückgeben Java Basics - Anfänger-Themen 4
B Neue Liste erstellen, wenn Objekte bestimmte Referenz hat / Gruppierung von Einträgen Java Basics - Anfänger-Themen 12
Y Pointer / Referenz - Theorie Java Basics - Anfänger-Themen 3
H Referenz Objekt aufrufen Java Basics - Anfänger-Themen 12
D Uebergabe per Referenz Java Basics - Anfänger-Themen 2
O Referenz - toString Java Basics - Anfänger-Themen 9
S This-Referenz Java Basics - Anfänger-Themen 6
F Referenz an ein Objekt in einer anderen Klasse erstellen(Nullpointer exception) Java Basics - Anfänger-Themen 6
I Referenz auf Klasse als Rückgabewert Java Basics - Anfänger-Themen 7
P Datentypen LinkedList: Kopie behält Referenz? Java Basics - Anfänger-Themen 3
J Referenz und Instanzierung Java Basics - Anfänger-Themen 25
I Erste Schritte Referenz zum Knoten davor, in einer Liste Java Basics - Anfänger-Themen 4
M Referenz geht bei Zwischenspeichern verloren (ArrayList) Java Basics - Anfänger-Themen 4
8 Referenz (Pointer, Zeiger) in Java Java Basics - Anfänger-Themen 9
O This-Referenz als Returnwert einer Methode? Java Basics - Anfänger-Themen 13
O This Referenz Java Basics - Anfänger-Themen 3
A top referenz bei queues Java Basics - Anfänger-Themen 1
J Rückgabe als Wert, keine Referenz Java Basics - Anfänger-Themen 3
Q Parameterübergabe - Objekt - Referenz Java Basics - Anfänger-Themen 5
C Dynamische Referenz & abstrakte Klassen Java Basics - Anfänger-Themen 3
V Frage zu Polymorphismus: Objekt der Subklasse in Referenz der Oberklasse Java Basics - Anfänger-Themen 4
T Aufgerufene Methode Inhalt der übergebenen Referenz Java Basics - Anfänger-Themen 5
B Referenz in Java Java Basics - Anfänger-Themen 5
C Referenz auf ein Objekt kopieren! Java Basics - Anfänger-Themen 2
J Methoden Referenz und Speicherplatz für Objekte reservieren Java Basics - Anfänger-Themen 2
M Wie komm ich an die Referenz eines Oberflächenelements Java Basics - Anfänger-Themen 2
A Klassenvariablen Referenz auf ein Objekt Java Basics - Anfänger-Themen 18
M Referenz Frage Java Basics - Anfänger-Themen 12
K OOP Probleme mit Objekt-Referenz in Methode Java Basics - Anfänger-Themen 6
W Die leidige Referenz-Frage Java Basics - Anfänger-Themen 9
B Arraycopy kopiert nur die Referenz?! Java Basics - Anfänger-Themen 3
S Speicheradresse auf die eine Referenz zeigt ausgeben Java Basics - Anfänger-Themen 12
E Compiler-Fehler kann Objekt-Referenz nicht erstellen Java Basics - Anfänger-Themen 3
B Referenz zu anderen Frame Java Basics - Anfänger-Themen 10
Blackskyliner Referenz ähnlicher Zugriff, aber wie? Java Basics - Anfänger-Themen 4
K Klassen this-Referenz und Klassen/Methodenaufruf Syntax Java Basics - Anfänger-Themen 3
C Referenz einer bereits instanziierten Klasse während des Programmablaufs Java Basics - Anfänger-Themen 16
H Objekt holen per Referenz als String. Java Basics - Anfänger-Themen 4
T Referenz einer Variable übergeben Java Basics - Anfänger-Themen 3
S Datentypen Objekt Integer Referenz Java Basics - Anfänger-Themen 5
B Referenz auf Referenz Java Basics - Anfänger-Themen 3
Luk10 Problem mit Singleton bzw statischer Referenz! Java Basics - Anfänger-Themen 16
H ArrayList Zugriffe per Referenz verkürzen? Java Basics - Anfänger-Themen 9
B Static Referenz auf Non-static Feld Java Basics - Anfänger-Themen 6
Luk10 Sinn von Instanzierung ohne Referenz Java Basics - Anfänger-Themen 7
C0FFEE Referenz auf Methode übergeben Java Basics - Anfänger-Themen 2
aze NullpointerException :Null Referenz anzeigen lassen Java Basics - Anfänger-Themen 2
D Fehlen einer Referenz auf Objekt Java Basics - Anfänger-Themen 14
N this.referenz erläuterung Java Basics - Anfänger-Themen 2
K Attribut als Referenz auf Objekt Java Basics - Anfänger-Themen 8
K 3 Threads bearbeiten 1 Referenz: Ich versteh's nicht... Java Basics - Anfänger-Themen 2
P OOP-Theorie-Frage: Referenz auf Objekt Java Basics - Anfänger-Themen 27
D Referenz auf Objekt Java Basics - Anfänger-Themen 5
P Methode BigInteger-Array übergeben als Referenz Java Basics - Anfänger-Themen 6
U null-referenz Java Basics - Anfänger-Themen 26
deetee Problem mit Referenz auf Map Java Basics - Anfänger-Themen 5
G Interface referenz probleme Java Basics - Anfänger-Themen 10
V Return - JA/NEIN - Parameterübergabe Array (Referenz) Java Basics - Anfänger-Themen 7
D enum und Referenz der umgebenden Klasse Java Basics - Anfänger-Themen 2
C Referenz Java Basics - Anfänger-Themen 11
A ClassNotFoundException: Referenz nicht aktualisiert Java Basics - Anfänger-Themen 2
P Textarea aktualisieren, Referenz fehlt Java Basics - Anfänger-Themen 4
T Die this Referenz Java Basics - Anfänger-Themen 21
C Größe einer Referenz ? Java Basics - Anfänger-Themen 16
D Array reverse Problem, da Referenz nicht auf tmpArray zeigt Java Basics - Anfänger-Themen 4
G primitive Datentypen als Referenz an eine Methode übergeben Java Basics - Anfänger-Themen 2
G Wie Referenz auf Objekt übergebn Java Basics - Anfänger-Themen 8
P Objekte als Attribut: Referenz oder Kopie? Java Basics - Anfänger-Themen 3
G Parameterübergabe als Referenz bzw. als Kopie Java Basics - Anfänger-Themen 4
S Prüfen, ob null Referenz? Java Basics - Anfänger-Themen 2
G Referenz-Problem Java Basics - Anfänger-Themen 3
J Referenz problem Java Basics - Anfänger-Themen 12
D tiefergehende Java-Referenz Java Basics - Anfänger-Themen 3
G Objektübergabe als Referenz bei RMI Java Basics - Anfänger-Themen 2
J referenz auf noch nicht erzeugte objekte? Java Basics - Anfänger-Themen 2
G Rückgabe einer Kopie bzw. Referenz Java Basics - Anfänger-Themen 22
M Parameter als Referenz übergeben Java Basics - Anfänger-Themen 5
F Referenz Pointer oder doch nochmal neu suchen ? Java Basics - Anfänger-Themen 2
D Unterschied zwischen Referenz auf Objekt/Instanz von Objekt Java Basics - Anfänger-Themen 9
K Referenz auf Funktion Java Basics - Anfänger-Themen 6
J Referenz auf ein Objekt Java Basics - Anfänger-Themen 2
javasdann Referenz als String ausgeben. Java Basics - Anfänger-Themen 10
B Was ist eine Referenz? Java Basics - Anfänger-Themen 6
Z Zugriff auf Attribute nach Zuweisung einer Referenz Java Basics - Anfänger-Themen 8
L Referenz vs. Kopie Java Basics - Anfänger-Themen 2
G Zeiger/Referenz auf int- Variable Java Basics - Anfänger-Themen 5
G zugriff auf membervariable aus inneren klasse Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben