Variablen und Konstanten in Java (Variablen und Konstanten in Java), Lektion, Seite 723229
https://www.purl.org/stefan_ram/pub/variablen_konstanten_java (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
Java-Kurs

Variablen und Konstanten in Java

Der Begriff „Konstante“

Das, was in diesem Kurs bisher als „Konstante“ bezeichnet wurde, ist in der Sprache der Java -Sprachspezifikation eine final-Variable  (4.12.4), dort wird der Begriff „Konstante“ in einem engeren Sinne verwendet als in diesem Skript.

Dennoch legt die Java -Sprachspezifikation fest, daß final-Variablen für Werte  stehen, während Variablen ohne »final« für einen Speicherplatz stehen. Und in genau diesem Sinne verwendet auch dieser Kurs hier die Unterscheidung zwischen Konstanten und Variablen: Eine Konstante  ist ein Name für einen Wert, während eine Variable  ein Name für einen Speicherplatz  ist.

Stilregeln

Stilregel Wenn der Wert eines bestimmten Namens nicht verändert werden braucht oder soll, dann sollte der Name als konstant final«) deklariert werden. Konstanten sollten gegenüber Variablen bevorzugt eingesetzt werden!

Begründung Programme mit Konstanten sind leichter verständlich, da man sich zu einem bestimmten Namen immer einen bestimmten festen Wert denken kann.

Programme mit Variablen sind schwieriger  zu verstehen als Programme mit Konstanten, da man sich beim Lesen einer Verwendung eines Namens nicht darauf verlassen kann, daß dieser noch den Initialisierungswert beibehalten hat: Bei einer Variablen könnte der Wert irgendwann nach der Deklaration durch eine Zuweisung verändert worden sein. Deswegen sollten Variablen sollten nur verwendet werden, wenn ihre Veränderbarkeit unbedingt benötigt wird.

Variablen mit wechselnder Bedeutung

Das folgende Beispiel spielt in einem Land mit 11 % Mehrwertsteuer und soll den Preis einer Ware mit einem Wert von 120 berechnen.

Es bleibt bei diese Programm allerdings unklar, welche Bedeutung die Variable »preis« genau hat. Gibt sie nun den Warenwert ohne  Mehrwertsteuer (netto) oder den Endpreis inklusive  Mehrwertsteuer (brutto) an? Offensichtlich beides, aber nacheinander! Solche Variablen mit wechselnder Bedeutung sind schwer verständlich.

Main.java
public final class Main
{ public static void main( final java.lang.String[] args )
{ double preis = 120;
preis = preis * 1.11;
java.lang.System.out.println( preis ); }}
transcript
133.20

In dem folgenden Programm werden statt einer Variablen zwei Konstanten eingesetzt. Nun hat jeder Name einer verständliche Bedeutung!

Main.java
public final class Main
{ public static void main( final java.lang.String[] args )
{ final double netto = 120;
final double brutto = netto * 1.11;
java.lang.System.out.println( brutto ); }}
transcript
133.20

Oft lassen sich Variablen durch Konstanten ersetzen.

Zitat aus der JLS8, 4.12.4
A constant variable is a final variable of primitive type or type String that is initialized with a constant expression (§15.28).

Zitate *

“A variable that is declared final cannot be assigned to (unless it is definitely unassigned (§16 (Definite Assignment))), because when an access of such a final variable is used as an expression, the result is a value, not a variable, and so it cannot be used as the first operand of an assignment operator.”

Seiteninformationen und Impressum   |   Mitteilungsformular  |   "ram@zedat.fu-berlin.de" (ohne die Anführungszeichen) ist die Netzpostadresse von Stefan Ram.   |   Eine Verbindung zur Stefan-Ram-Startseite befindet sich oben auf dieser Seite hinter dem Text "Stefan Ram".)  |   Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram. Schlüsselwörter zu dieser Seite/relevant keywords describing this page: Stefan Ram Berlin slrprd slrprd stefanramberlin spellched stefanram723229 stefan_ram:723229 Variablen und Konstanten in Java Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd723229, slrprddef723229, PbclevtugFgrsnaEnz Erklärung, Beschreibung, Info, Information, Hinweis,

Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram.
https://www.purl.org/stefan_ram/pub/variablen_konstanten_java