Auf eine Eigenschaft zB "int x" aus einer anderen Klasse zugreifen?

vaporizer

Erfahrenes Mitglied
Hallo
Gibt es eine Möglichkeit eine Attribute bzw Eigenschaft so zu deklarieren
dass man aus einer anderen Klasse darauf zugreifen kann?
 
Wenn du eine Eigenschaft als "public" deklarierst, kann darauf von jeder anderen Klasse drauf zugegriffen werden.
Wenn du einfach nur "int x" schreibst, kann nur aus demselben Package darauf zugegriffen werden.
 
Also ich habe die Eigenschaft elbu als public deklariert
wenn ich aber nun elbu in einer anderen Klasse verwende
dann erkennt er sie mir nicht
habe Klassennahmen.elbu versucht
das funktioniert aber leider nicht
wie kann ich nun diese eigenschaft der anderen klasse benutzen?
 
Wäre praktisch wenn du dazu die entsprechenden Codeschnipsel posten würdest (Deklaration der Klasse, die deine Instanzvariable enthält, Zugriff auf die Variable).
 
Code:
Klasse MyCLass:
public void eingeben()
{
	    
int i=0;
String name = readString("index "+i+" von Element "+elbu+" <<HIER eingeben: (abbruch=quit)");
while((!name.equals("quit")) && (i<all-1))
{
	if((i==0) || (name.equals("quit"))) e++;
	vary[i] = name;
	i++;
	name = readString("index "+i+" von Element "+elbu+" <<HIER eingeben: (abbruch=quit)");
}
last=i;
}

also die Variable elbu
ist in einer anderen Klasse namens CopyShop zu finden
Deklaration: public int elbu=0;
 
Ähem... wenn du die Variable als Instanzvariable deklarierst, musst du natürlich auch eine Instanz der jeweiligen Klasse haben und über diese auf sie zugreifen.
 
Ich glaub mit "public static" kannst du dich schon mal über Vererbungsstrukturen hinwegsetzen, aber was du genau willst weiß ich nicht.

Du sagst "elbu" ist in einer CopyShop Klasse? Diese Klasse musst du ja irgendwann instanzieren od. überhaupt darauf zugreifen. Wie oben erwähnt kannst du get/set Methoden schreiben... also in die Klasse CopyShop zB

public int getElbu() {
retrun elbu;
}

Aufrufen wie gehabt ... CopyShop cpy = new CopyShop(); int x = cpy.getElbu();

Du kannst auch eine Referenz auf CopyShop zB in MyClass speichern. Du definierst in MyClass einfach eine CopyShop Variable und CopyShop registriert sich dann durch eine Methode in MyClass.

MyClass {
CopyShop cpy;

public void setCopyShop(CopyShop cpy) {
this.cpy = cpy;
}
}

Bist wohl auch eher neu im objektorientierten Bereich, ich persönlich hab auch noch so meine Schwiriegkeiten gute Vererbungshirachien zu programmieren.
 
naja ich bin im gesamten Programmier Bereich noch neu :)
und hab noch mit so ziemlich allen Dingen Probleme :)

hab aber nun so
CopyShop cpy = new CopyShop();
instanziert
funktioniert nun auch
kann nun eine get Methode aufrufen..

das komische ist nur das ich dies Gestern versucht habe
und da hat mir Eclipse "CopyShop()" rot unterstrichen
warum auch immer das so war

aber was solls hauptsache es funktioniert Heute
auch Pc'c haben wohl ihre guten und schlechten Tage

Schöne Grüße von Vaporizer
 
Zurück