Wie lassen sich Objektkonstanten initialisieren, wenn sie eine Bedingung erreichen?

mathilda712

Mitglied
Ich dachte Objektkonstanten seien final und ihre Werte würden sich nicht mehr verändern lassen. Nun soll ich einen der Objektkonstanten nur mit einem Wert initialisieren, wenn der vorherig bestimmte Konstruktorparameter negativ ist.

Meine Idee wäre eine if-Verzweigung. Also:

if (Konstruktorparameter < 0) {
Objektkonstante = Wert;
}

Ist das möglich?
 

X5-599

Top Contributor
Nicht statische Konstanten einer Klasse können durch den Konstruktor initialisiert werden. Es muss lediglich sichergestellt werden, dass dies auch passiert, wenn ein "if" die Initialisierung beeinflusst; in diesem Fall muss auch eine Initialisierung im "else" Zweig vorhanden sein.
Wenn mehrere Konstruktoren vorhanden sind müssen diese ebenfalls eine solche Initialisierung sicherstellen.
 

mathilda712

Mitglied
Was verstehst du denn unter dem Begriff "Objektkonstante"? Diesen Begriff gibt es so eigentlich nicht.

Kannst du dafür ein Codebeispiel zeigen?

Java:
class Foo {
 
    // ??
 
}


Bei Fragen wie "wenn... dann soll..." ist "if" meist keine ganz schlechte Idee.
Unter Objektkonstante verstehe ich sowas:
private final double x;
 

X5-599

Top Contributor
Um es mal mit etwas Code auszudrücken. Folgendes wäre eine kompilierbare Klasse.

Java:
public class Demo
{
	private final int VALUE;
	
	public Demo(boolean aBoolean)
	{
		if(aBoolean)
		{
			VALUE = 20;
		}
		else
		{
			VALUE = 70;
		}
	}
	
	public Demo()
	{
		this(true);
	}
	
	public Demo(int anInt)
	{
		if(anInt == 10000)
		{
			VALUE = 10;
		}
		else
		{
			VALUE = 100;
		}
	}
}

Der erste und letzte der Konstruktoren initialisiert jeweils in jedem Fall die Konstante. Der zweite Konstruktor benutzt durch das this(true); den ersten und somit ist auch hier die Voraussetzung erfüllt, dass die Konstante in jedem Fall initialisiert wird.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Wie lassen sich Konstanten in Bedingung stellen? Java Basics - Anfänger-Themen 1
J Java-Dateien lassen sich nicht editieren Java Basics - Anfänger-Themen 46
Bluedaishi Dateien Lassen sich unter windows nicht löschen Java Basics - Anfänger-Themen 8
A Dinge lassen sich nicht importieren Java Basics - Anfänger-Themen 7
Sogomn Bild will sich nicht skalieren lassen Java Basics - Anfänger-Themen 1
Rudolf Umgebungsvariable Jar Dateien lassen sich nicht ausführen Java Basics - Anfänger-Themen 4
D Warum sich ANSCHREIEN lassen? Java Basics - Anfänger-Themen 19
P Variablen lassen sich nicht ändern Java Basics - Anfänger-Themen 13
R Daten aus ArrayList lassen sich nicht auslesen Java Basics - Anfänger-Themen 12
M Compiler-Fehler .jar Dateien lassen sich nicht ausführen! Java Basics - Anfänger-Themen 4
C Daten einer JTable lassen sich nicht ändern Java Basics - Anfänger-Themen 6
M Textboxen lassen sich ändern obwohl editable = false Java Basics - Anfänger-Themen 8
B Programm sich selbst neu starten lassen Java Basics - Anfänger-Themen 8
G textfelder lassen sich nicht anwählen Java Basics - Anfänger-Themen 10
R char-Variablen lassen sich nicht vergleichen Java Basics - Anfänger-Themen 15
XWing Int erstellen lassen? Java Basics - Anfänger-Themen 11
H Minimum und Maximum ausgeben lassen Java Basics - Anfänger-Themen 7
H Leere Zeilen in Textdatei löschen lassen Java Basics - Anfänger-Themen 5
P Wie kann ich meine Keylistener Klasse unterscheiden lassen, von welcher "Quelle" der Input kommt? Java Basics - Anfänger-Themen 2
N Java Taschenrechner hat Jemand vlt einen Tipp dafür wie ich jetzt die buttons verbinden kann und das Ergebnis auf dem textfield anzeigen lassen kann Java Basics - Anfänger-Themen 13
H Counter durch gepresste Taste nur auf 1 erhöhen und nicht durchzählen lassen Java Basics - Anfänger-Themen 7
I Verschiedenen WebApp kommunizieren lassen Java Basics - Anfänger-Themen 1
K wie kann ich alle Attribute von dem Objekt(pagode) ausgeben lassen ? Java Basics - Anfänger-Themen 3
julian0507 Wörter einlesen lassen und rückwärts ausgeben Java Basics - Anfänger-Themen 7
B Robot auf virtuellem Desktop laufen lassen? Java Basics - Anfänger-Themen 4
HeiTim Brauche Hilfe soll ein nummeriertes Feld ausgeben lassen Java Basics - Anfänger-Themen 17
Schniffi Nur bestimmte Bilder aus einem Array auf Image Button anzeigen lassen Java Basics - Anfänger-Themen 3
H For-Schleife bis Index von Eingabe laufen lassen Java Basics - Anfänger-Themen 24
D Programm auf Enter warten lassen Java Basics - Anfänger-Themen 2
F Frage betreff Programm mit dem man C++-Code in JAVA-Code übersetzen lassen kann Java Basics - Anfänger-Themen 2
D Wie Objekte im JFrame frei bewegen lassen? Java Basics - Anfänger-Themen 3
Hallolu Pong-Spiel: Schläger schneller werden lassen Java Basics - Anfänger-Themen 9
Ray19941 Über BlueJ Textdatei selbstständig erstellen lassen Java Basics - Anfänger-Themen 2
W User zwischen Optionen wählen lassen Java Basics - Anfänger-Themen 1
TimoN11 Array -> Schleife wieder von vorne durchlaufen lassen Java Basics - Anfänger-Themen 1
W Anzahl der Zeilen ausgeben lassen Java Basics - Anfänger-Themen 20
P Nutzer entscheiden lassen, wie viele Zahlen dieser in ein Array eingeben möchte. Java Basics - Anfänger-Themen 6
Tino1993 Ellipse über draw Funktion ohne spur wandern lassen Java Basics - Anfänger-Themen 6
AGW App programmiert lassen, aber Änderungen vornehmen Java Basics - Anfänger-Themen 13
E Timer trotz erwartender Eingabe durchlaufen lassen Java Basics - Anfänger-Themen 11
M Auf MainJFrame Panels anzeigen lassen Java Basics - Anfänger-Themen 19
E 2D Array - char durch die Matrix "wandern" lassen Java Basics - Anfänger-Themen 7
S Variablen Variablen in einer Schleife erstellen lassen Java Basics - Anfänger-Themen 11
P Arrays "automatisch" erstellen lassen Java Basics - Anfänger-Themen 12
I Klasse selbst fortlaufend nummerieren lassen Java Basics - Anfänger-Themen 11
V_Fynn03 Kontostand anzeigen lassen von einer anderen Klasse Java Basics - Anfänger-Themen 3
L Symbo Rätsel lösen lassen Java Basics - Anfänger-Themen 3
A Breakout-Spiel , Ball mit Platten abprallen lassen Java Basics - Anfänger-Themen 1
H For-Schleife für 60 sekunden laufen lassen Java Basics - Anfänger-Themen 1
T Klassen Den Wert aus Array lesen lassen Java Basics - Anfänger-Themen 12
N Wie kann ich einen String wieder zusammensetzen und ausgeben lassen? Java Basics - Anfänger-Themen 9
M Dijkstra Algorithmus in Graphen auf mehrere verschiedene Knoten anwenden lassen Java Basics - Anfänger-Themen 11
J Kapselung Array in Set ändern und in Main ausgeben lassen Java Basics - Anfänger-Themen 4
CptK Best Practice Klassendiagramm aus fertigen Klassen erstellen lassen Java Basics - Anfänger-Themen 2
L 10-Stellige Zahl hochzählen lassen Java Basics - Anfänger-Themen 1
T Klassen Klassenübergreifende Objekte erstellen lassen Java Basics - Anfänger-Themen 5
J Aktuelle Zeit in einer JavaFX Anwendung aktualisieren lassen Java Basics - Anfänger-Themen 4
B Threads 2 Threads gleichzeitig laufen lassen Java Basics - Anfänger-Themen 1
J Einfaches Quadrat auf der Console ausgeben lassen Java Basics - Anfänger-Themen 7
I Methoden Schleife immer wieder durchlaufen lassen Java Basics - Anfänger-Themen 15
A ArrayList - size() nur nach bestimmtem index anzeigen lassen Java Basics - Anfänger-Themen 13
B mir nur die Gesamtzahl von einzigartigen Strings aus Array ausgeben lassen Java Basics - Anfänger-Themen 5
karlmasutra OOP Inhalt eines Array ausgeben lassen Java Basics - Anfänger-Themen 8
M Methoden Zwei Methoden in einem Program laufen lassen...aber wie? Java Basics - Anfänger-Themen 2
M Methoden zwei methoden gleichzeitig laufen lassen Java Basics - Anfänger-Themen 4
SchmidiMC Methoden Random in Methode neu generieren lassen Java Basics - Anfänger-Themen 1
O Methoden 3 Methoden gleichzeitig laufen lassen in der Console Java Basics - Anfänger-Themen 2
MR._FIRE_Flower Ordner im Explorer öffnen lassen Java Basics - Anfänger-Themen 2
nightsky_ Mehrdimensionales Array mit flatMap() ausgeben lassen Java Basics - Anfänger-Themen 6
F Interface JFrame mit if-Abfrage automatisch schließen lassen? Java Basics - Anfänger-Themen 3
D String erste Zahl mit LKZ auslesen lassen Java Basics - Anfänger-Themen 36
D String untereinander auslesen lassen Java Basics - Anfänger-Themen 2
N Minimum ausgeben lassen Java Basics - Anfänger-Themen 5
H Path2D zerlegen und Objekt drauf "laufen" lassen Java Basics - Anfänger-Themen 11
O Klassen Objektnamen für Methodenaufrauf einlesen lassen Java Basics - Anfänger-Themen 2
J Schleife schlafen lassen Java Basics - Anfänger-Themen 4
RowdyN Methoden Befehle in zufälliger Reihenfolge ausführen lassen Java Basics - Anfänger-Themen 5
L Javaprogramm nach ausführung des gesammten Cods neu beginnen lassen Java Basics - Anfänger-Themen 9
R Erste Schritte 3 Variablen hochzählen lassen Java Basics - Anfänger-Themen 1
F Input/Output Text einlesen lassen Java Basics - Anfänger-Themen 14
L Text eingeben und im Textfeld auslesen lassen Java Basics - Anfänger-Themen 2
L Verschiedene Bilder per Knopfdruck anzeigen lassen Java Basics - Anfänger-Themen 17
A Array im Array einzeln printen lassen? Java Basics - Anfänger-Themen 26
R Funktionen Synchron laufen lassen Java Basics - Anfänger-Themen 10
N Quiz- Fragen zufällig anzeigen lassen Java Basics - Anfänger-Themen 7
binop Bild anzeigen lassen Java Basics - Anfänger-Themen 2
R Threads aufeinander warten lassen? Java Basics - Anfänger-Themen 10
P Ungerade Zahlen ausgeben lassen zwischen Spannweite zweier eingegeben zahlen Java Basics - Anfänger-Themen 6
C Tannenbaum auf der Konsole ausgeben lassen Java Basics - Anfänger-Themen 12
C Alle Zweierpotenzen bis 2^10 ausgeben lassen Java Basics - Anfänger-Themen 15
W Input/Output Modulo Wert speichern und ausgeben lassen Java Basics - Anfänger-Themen 3
W Erste Schritte Zweidimensionales Array - Gerade Zahlen anzeigen lassen Java Basics - Anfänger-Themen 3
F Java BlueJ Dinge verschwinden lassen Java Basics - Anfänger-Themen 2
J Objekt ausgeben lassen Java Basics - Anfänger-Themen 6
Z Erste Schritte Klassennamen ausgeben lassen Java Basics - Anfänger-Themen 2
E Muster auf der Konsole ausgeben lassen (Schleifen) Java Basics - Anfänger-Themen 7
J JPG in JFrame anzeigen lassen Java Basics - Anfänger-Themen 3
L0MiN Input/Output Wie kann ich Kompilierfehler richtig ausgeben lassen (Runtime)? Java Basics - Anfänger-Themen 1
S mit Java HTML Button drücken "lassen" Java Basics - Anfänger-Themen 8
M Erste Schritte Code zur Laufzeit ändern lassen Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben