PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [JAVA] KONSTANTE


Unfug
2006-07-25, 22:59:13
Hi,
ich sitze grad mit einem Freund an einem Projekt. Es hängt an einer Methode, die folgendes machen soll

Klasse1 und Klasse2 haben wir.

die Methode soll
suchen("String", Klasse1.KONSTANTE")
sein. Die sämtliche Objekte wiedergibt, die diesen String in "KONSTANTE" haben

Ich versteh das nicht so recht. Konstanten bedeuten doch, daß Sie fest im Code stehen (Mal Grob ausgedrückt).
Also ich hab

class Klasse1{
static final string KONSTANTE ="3dcenter";
}


Dann hat doch jede Instanz von Klasse1 die selbe KONSTANTE, oder? :confused:
Im Nachinhein darf man die doch nicht ändern.

Aqualon
2006-07-25, 23:22:55
Konstanten sind in allen Objekten einer Klasse gleich. Wo steht denn diese Suchenmethode? Kann es sein, dass ihr da viele Referenzen auf unterschiedliche Klassen habt und dann damit die Klassentypen bestimmen sollt (also quasi instanceof selbst gemacht)?

Aqua

Unfug
2006-07-25, 23:41:42
Ich glaub ich hab es soweit raus und zwar
muss ich wohl


class Klasse1{
static final Klasse1 KONSTANTE1 = new Klasse1(1);
static final Klasse1 KONSTANTE2 = new Klasse1(2);
...
privat int Value;

Klasse1(int i) { value = i; }
}


machen. So stehts in einem Lehrbuch . Allerdings ist es noch schwierig für mich da durchzusteigen. Puhh ich glaub ist schon zu spät :-)

PH4Real
2006-07-26, 00:38:23
Also irgendwie ist das ein bißchen verwirrend was Du hier schreibst und so ganz bin ich noch nicht dahinter gekommen was Du eigentlich willst ;)...

Jedoch sind (static) statische Variablen sowieso nie an eine Instanz gebunden, sondern immer nur an Klassen. Deswegen ja auch Klassenvariable. Das "final" Keyword macht die Variable dann zur "quasi-Konstanten". Das Objekt selbst kann nämlich verändert werden.

Was jetzt dein 2. Beispiel mit dem ersten Beispiel und der Suchen Methode zu tun hat, weiß ich jetzt auch nicht genau ;)... bzw. was denn der Sinn des 1. Beispiels ist.

Am besten Du liest Dir einfach hier nochmal
6.4 Statische Methoden und statische Attribute (http://www.galileocomputing.de/openbook/javainsel5/javainsel06_003.htm#Rxx747java06003040001E41F019100)
sowie
6.5 Konstanten und Aufzählungen (http://www.galileocomputing.de/openbook/javainsel5/javainsel06_004.htm#Rxx747java06004040001E51F03D100)
durch. Da wird erklärt, was der Sinn von denen ist und wie man die benutzt. Zudem benutzt man heute für fixe Aufzählungen Enums in Java, was aber dort auch steht.

Gruß,
PH4Real