java-forum.org - Java programmieren aus Leidenschaft
Java 6 Einstieg und professioneller Einsatz
Alter Preis: 34,90 EUR
Jetzt: 0,00 EUR

zzgl. Versandkosten

Zurück   java-forum.org - Java programmieren aus Leidenschaft > Java - Programmierung > Java Basics - Anfänger-Themen

Java Basics - Anfänger-Themen Fragen ausschließlich zu Java-Grundlagen von Ein- und Umsteigern

Antwort    
Themen-Optionen Thema durchsuchen Ansicht
Alt 08.01.2011, 14:28   #1 (permalink)
Benutzer
int
 
Registriert seit: 07.01.2011
Fachbeiträge: 43
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
Standard Von einer Methode eines Objektes auf Attribut eines Objektes anderer Klasse zugreifen

Hey,

Ich habe 2 verschiedene Klassen. Muellmann und Tonne
mit den Objekten Hans:Muellmann, Papier:Tonne
die beiden Klassen sind über eine Assoziation miteinander verbunden.

in der Methode von Papier:Tonne kann ich wie folgt auf eine Methode von Hans:Muellmann zugreifen:

Java Code: Quelltext in neuem Fenster öffnen
1
this.getMuellmann().methode();

Wenn ich aber auf ein ATTRIBUT zugreifen will klappt das so nicht:

Java Code: Quelltext in neuem Fenster öffnen
1
this.getMuellmann().getAttribut();

Wie kann ich denn nun auf das Attribut zugreifen?
ITrun90 ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 08.01.2011, 14:34   #2 (permalink)
Stammbenutzer
Megabyte
 
Benutzerbild von Final_Striker
 
Registriert seit: 21.06.2008
Fachbeiträge: 2.362
Abgegebene Danke: 4
Erhielt 366 Danke für 350 Beiträge
Zeig mal die beiden Klassen.

Was heißt "klappt das so nicht" ?
Final_Striker ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 08.01.2011, 14:44   #3 (permalink)
Benutzer
int
Themenstarter
 
Registriert seit: 07.01.2011
Fachbeiträge: 43
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
Die Fehlermeldung ist folgende:


cannot find symbol
symbol : variable getName
location: class Muellmann

Er denkt getName sei eine Variable, dabei ist es ein Attribut.

Um es leichter zu verstehen habe ich mein Problem leichter dar gestellt, wenn ich nun die Klassen poste muss ich weiter ausholen.

Habe eine Methode in der Klasse MuellKunde, die Methode heisst fuellen():void
das ist der Qeullcode:



Java Code: Quelltext in neuem Fenster öffnen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
public class MuellKunde extends Mensch
{
 
    public void fuellen ()
   {
 
      int zahl = (int)(Math.random()*30+1);
      int muellvorher = this.getTonne().count(zahl);
      int muellnachher = muellvorher + zahl;
      System.out.println(this.getName() + ": Ich habe Mülltonne mit " + zahl + " MüllEinheiten gefüllt");
 
      System.out.println("--> Die "+this.getTonne().getName+"mülltonne ist nun mit " + muellnachher + " Mülleinheiten gefüllt");
      System.out.println("");
      if (muellnachher>50)
      {
         System.out.println("Tonne ist voll");
         System.out.println("Müllmann kommt");
         this.getMuellmann().TonneLeeren();
 
      }
      else
      {
         fuellen();
 
      }return ;
 
   } // end CodeGen2 generated method 
   /**
    * <pre>
    *           1     Kunde     1 
    * Muellabfur ------------------------- MuellKunde
    *           muellabfur      muellKunde
    * </pre>
    */
   public static final String PROPERTY_MUELLABFUR = "muellabfur";
    
   @Property( name = PROPERTY_MUELLABFUR, partner = Muellabfur.PROPERTY_MUELL_KUNDE, kind = ReferenceHandler.ReferenceKind.TO_ONE,
         adornment = ReferenceHandler.Adornment.NONE)
   private Muellabfur muellabfur;
 
   @Property( name = PROPERTY_MUELLABFUR )
   public boolean setMuellabfur (Muellabfur value)
   {
      boolean changed = false;
 
      if (this.muellabfur != value)
      {
         
         Muellabfur oldValue = this.muellabfur;
         MuellKunde source = this;
         if (this.muellabfur != null)
         {
            this.muellabfur = null;
            oldValue.setMuellKunde (null);
         }
         this.muellabfur = value;
 
         if (value != null)
         {
            value.setMuellKunde (this);
         }
         changed = true;
         
      }
      return changed;
   }
 
   @Property( name = PROPERTY_MUELLABFUR )
   public Muellabfur getMuellabfur ()
   {
      return this.muellabfur;
   }
   /**
    * <pre>
    *           1     Ruft     1 
    * Muellmann ------------------------- MuellKunde
    *           muellmann      muellKunde
    * </pre>
    */
   public static final String PROPERTY_MUELLMANN = "muellmann";
    
   @Property( name = PROPERTY_MUELLMANN, partner = Muellmann.PROPERTY_MUELL_KUNDE, kind = ReferenceHandler.ReferenceKind.TO_ONE,
         adornment = ReferenceHandler.Adornment.NONE)
   private Muellmann muellmann;
 
   @Property( name = PROPERTY_MUELLMANN )
   public boolean setMuellmann (Muellmann value)
   {
      boolean changed = false;
 
      if (this.muellmann != value)
      {
         
         Muellmann oldValue = this.muellmann;
         MuellKunde source = this;
         if (this.muellmann != null)
         {
            this.muellmann = null;
            oldValue.setMuellKunde (null);
         }
         this.muellmann = value;
 
         if (value != null)
         {
            value.setMuellKunde (this);
         }
         changed = true;
         
      }
      return changed;
   }
 
   @Property( name = PROPERTY_MUELLMANN )
   public Muellmann getMuellmann ()
   {
      return this.muellmann;
   }
   /**
    * <pre>
    *           1     Hat     1 
    * Tonne ------------------------- MuellKunde
    *           tonne      muellKunde
    * </pre>
    */
   public static final String PROPERTY_TONNE = "tonne";
    
   @Property( name = PROPERTY_TONNE, partner = Tonne.PROPERTY_MUELL_KUNDE, kind = ReferenceHandler.ReferenceKind.TO_ONE,
         adornment = ReferenceHandler.Adornment.NONE)
   private Tonne tonne;
 
   @Property( name = PROPERTY_TONNE )
   public boolean setTonne (Tonne value)
   {
      boolean changed = false;
 
      if (this.tonne != value)
      {
         
         Tonne oldValue = this.tonne;
         MuellKunde source = this;
         if (this.tonne != null)
         {
            this.tonne = null;
            oldValue.setMuellKunde (null);
         }
         this.tonne = value;
 
         if (value != null)
         {
            value.setMuellKunde (this);
         }
         changed = true;
         
      }
      return changed;
   }
 
   @Property( name = PROPERTY_TONNE )
   public Tonne getTonne ()
   {
      return this.tonne;
   }
 
   public void removeYou()
   {
      this.setMuellabfur (null);
      this.setMuellmann (null);
      this.setTonne (null);
      super.removeYou();
   }
}

Und eine KLasse Tonne, welche ein Attribut Name besitzt, den Wert dieses Attributes brauche ich in der Methode der Klasse Muellmann, hier der code von Tonne:


Java Code: Quelltext in neuem Fenster öffnen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
public class Tonne
{
    
   public static final String PROPERTY_MENGE = "Menge";
 
   @Property( name = PROPERTY_MENGE, kind = ReferenceHandler.ReferenceKind.ATTRIBUTE )
   private int Menge;
 
   @Property( name = PROPERTY_MENGE )
   public void setMenge (int value)
   {
      this.Menge = value;
   }
 
   @Property( name = PROPERTY_MENGE )
   public int getMenge ()
   {
      return this.Menge;
   }
    
   public static final String PROPERTY_NAME = "Name";
 
   @Property( name = PROPERTY_NAME, kind = ReferenceHandler.ReferenceKind.ATTRIBUTE )
   private String Name;
 
   @Property( name = PROPERTY_NAME )
   public void setName (String value)
   {
      this.Name = value;
   }
 
   @Property( name = PROPERTY_NAME )
   public String getName ()
   {
      return this.Name;
   }
 
    public int count ( int menge)
   {
 
      int ret = getMenge();
      if (menge==100){
      setMenge(this.getMenge() - 50);
      }else
      {
      setMenge( getMenge() + menge);
      }
      return ret;
 
   } // end CodeGen2 generated method 
   /**
    * <pre>
    *           1     Leert     1 
    * Muellmann ------------------------- Tonne
    *           muellmann      tonne
    * </pre>
    */
   public static final String PROPERTY_MUELLMANN = "muellmann";
    
   @Property( name = PROPERTY_MUELLMANN, partner = Muellmann.PROPERTY_TONNE, kind = ReferenceHandler.ReferenceKind.TO_ONE,
         adornment = ReferenceHandler.Adornment.NONE)
   private Muellmann muellmann;
 
   @Property( name = PROPERTY_MUELLMANN )
   public boolean setMuellmann (Muellmann value)
   {
      boolean changed = false;
 
      if (this.muellmann != value)
      {
         
         Muellmann oldValue = this.muellmann;
         Tonne source = this;
         if (this.muellmann != null)
         {
            this.muellmann = null;
            oldValue.setTonne (null);
         }
         this.muellmann = value;
 
         if (value != null)
         {
            value.setTonne (this);
         }
         changed = true;
         
      }
      return changed;
   }
 
   @Property( name = PROPERTY_MUELLMANN )
   public Muellmann getMuellmann ()
   {
      return this.muellmann;
   }
   /**
    * <pre>
    *           1     Hat     1 
    * MuellKunde ------------------------- Tonne
    *           muellKunde      tonne
    * </pre>
    */
   public static final String PROPERTY_MUELL_KUNDE = "muellKunde";
    
   @Property( name = PROPERTY_MUELL_KUNDE, partner = MuellKunde.PROPERTY_TONNE, kind = ReferenceHandler.ReferenceKind.TO_ONE,
         adornment = ReferenceHandler.Adornment.NONE)
   private MuellKunde muellKunde;
 
   @Property( name = PROPERTY_MUELL_KUNDE )
   public boolean setMuellKunde (MuellKunde value)
   {
      boolean changed = false;
 
      if (this.muellKunde != value)
      {
         
         MuellKunde oldValue = this.muellKunde;
         Tonne source = this;
         if (this.muellKunde != null)
         {
            this.muellKunde = null;
            oldValue.setTonne (null);
         }
         this.muellKunde = value;
 
         if (value != null)
         {
            value.setTonne (this);
         }
         changed = true;
         
      }
      return changed;
   }
 
   @Property( name = PROPERTY_MUELL_KUNDE )
   public MuellKunde getMuellKunde ()
   {
      return this.muellKunde;
   }
 
   public void removeYou()
   {
      this.setMuellmann (null);
      this.setMuellKunde (null);
   }
}
ITrun90 ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 08.01.2011, 14:55   #4 (permalink)
Stammbenutzer
Megabyte
 
Benutzerbild von Final_Striker
 
Registriert seit: 21.06.2008
Fachbeiträge: 2.362
Abgegebene Danke: 4
Erhielt 366 Danke für 350 Beiträge
Java Code: Quelltext in neuem Fenster öffnen
1
String name = this.getMuellmann().getTonne.getName();
?
Final_Striker ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 08.01.2011, 15:25   #5 (permalink)
Stammbenutzer
Team RPGenesis
Viertel Megabyte
 
Benutzerbild von U2nt
 
Registriert seit: 05.12.2009
Fachbeiträge: 304
Abgegebene Danke: 12
Erhielt 23 Danke für 23 Beiträge
Vergess bei Methoden nicht die ().

Du hast in deiner Klasse Tonne die Methode "String getName()" deklariert. Du versuchst sie auch aufzurufen, aber this.getTonne().getName + "Dummy"; funktioniert nicht, wenn schon this.getTonne().getName().
__________________
RPGenesis - Upcoming 2D RPG engine & editor
U2nt ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Antwort    

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Autovermietung als Klassen Spin Java Basics - Anfänger-Themen 61 15.01.2010 00:50
Methode anderer Klasse aufrufen ;-) JimmyT Java Basics - Anfänger-Themen 5 14.05.2008 17:00
Zugriff auf attribut anderer Klasse privat/public? Delight Java Basics - Anfänger-Themen 9 17.02.2008 13:43
Methode einer Klasse in eine andere Übergeben milo24 Java Basics - Anfänger-Themen 4 18.04.2007 16:34
Von einer Klasse auf eine Methode einer anderen Klasse zugre joerch Java Basics - Anfänger-Themen 6 12.04.2004 22:29


Lesezeichen

Forumregeln
Es ist Ihnen erlaubt, neue Themen zu verfassen.
Es ist Ihnen erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:21 Uhr.


Powered by vBulletin® Version 3.8.6 (Deutsch)
Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.2
Thanks for Smilies by smilies.4-user.de