Freie Scripten und Tutorials erstellt von Roland Geyer       Startseite | Gästebuch

Elementare Variablen

ACHTUNG: Eine blaue Schrift verweist OHNE LINK auf die zuständige Beschreibung durch die Dokumentation der Java API !!

Eine Variable besitzt einen Namen mit einem dazugehörenden Wert.

Beispiel:
anton = "blau"; // Die Variable mit den Namen anton besitzt den Wert "blau"
anton = 4; // Die Variable mit den namen berta besitzt den Wert 4

Vereinbarungsgemäß werden allen Namen bis auf die Klassennamen und Konstanten klein geschrieben und jeder Anfangsbuchstabe eines Wortes innerhalb des Variablennamens groß:
Beispiel: dasIstEinVariablenNameDessenSatzManLesenKann.

Zur Organisation und Bestimmung der Grösse des Speichers benötigt der Computer Informationen über die Art einer Variablen = typ. Er legt fest, ob der Wert im Speicher als Zahl, Integer, Float, ..... oder als Zeichen interpretiert werden soll.
Zur Erinnerung: Ein Computer kennt genau 2 Zustände Ein oder Aus. Mehrere Ein/Aus-Zustände können den ASCII-Zeichensatz wiedergeben. Dazu benötige ich pro Information mehr Speicher, die vorher reserviert werden müssen. Daher wird der Variable die angeforderte Speichergröße zugeordnet. Der Typ einer Variablen wird vor dem ersten Auftreten im Namensraum festgelegt. Dies geschieht durch Nennung des Typs vor seinem Namen:
Beispiel: Eine Variable mit dem Namen a, die Integerzahlen beinhaltet: int a.

Mögliche elementare Typen sind:
zur Erinnerung, falls jemand die Größe des Bereichs nachrechnen möchte: 1byte = 4bit = 2hoch4 = 2*2*2*2 = 256 Möglichkeiten!!

-> als Ganzzahlen, immer vorzeichenbehaftet:

-> als Gleitkommazahlen:

-> als Zeichen

-> als boolan:

Standardtypen werden automatisch mit ihrem 0 Wert initialisiert:

Zusätzlich wird auch bestimmt, wo die Variablen gelten sollen. Sollen sie nur innerhalb einer Funktion gelten oder nur innerhalb einer Datei bzw. Klasse oder sonstwo. Die Definition, wo eine Variable gültig sein soll, wird Namensraum genannt. Da Variablen nur innerhalb Ihres Namensraumes gültig sein können, wird der Bereich in dem sie gültig sein dürfen vor der Angabe des Types bestimmt:

Variablen, die für einen Methodenaufruf als Platzhalter für die, während des Aufrufes übergebenen Werte fungieren, beginnen ihre Gültigkeit innerhalb der runden Klammern, die nach dem Namen der Funktion bei deren Definition stehen. Daher muss ihr Typ bei der Definition in der Funktionsdefinition der Parameter dabeistehen. Zusätzliche Optionen (private, static etc.) werden nicht dazuerklärt:

Beispiel: berechne(int a, int b)

Zusätzlich können noch folgende Optionen bei der Deklaration mitgegeben werden:

Beispiel: Variable mit dem Namen a , vom Typ integer, die den Wert 10 zugewiesen erhält: int a = 10

Diesen Vorgang nennt man Initialisieren einer Variablen.
Und da hier der Name der Variable, ihr Typ und der Gültigkeitsbereich festgelegt wird, spricht man auch von Deklarieren einer Variable. Natürlich erfolgt zuerst die Deklarierung (= ich sage dem Computer, dass er, wenn der Name a genannt wird, dies eine Bezeichnung für eine Variable bedeutet, die 4 byte Speicher erhält und deren Inhalt das Programm als Zahl zu interpretieren hat) und dann die Initialisierung (Dieser Variablen wird der Wert 2 zugewiesen).

Beispiel:

int a;
int b;
a = 3;
b = 4;



Variable sind nur innerhalb ihres Namensraumes, der durch zwei geschwungene Klammern definiert wird gültig.

Beispiel: { privat int a; }

und in allen weiter hineinreichenden Blöcken. Somit ist gewährleistet, dass gleiche Variablennamen außerhalb eines anderen Namensraumes eindeutig definiert sind.

Mehrere innere Klassen verwenden eine äußere Klasse um auf gemeinsame Variablen zugreifen zu können.(Beispiel AWT, Swing)

Innerhalb einer Methode deklarierte Variablen sind immer lokale Variablen. Da sie nur innerhalb des Blockes gelten, wird ihr Gültigkeitsbereich nicht bezeichnet! Sie müssen immer initialisiert werden. Wird der Name auch außerhalb des Blockes verwendet (was fast einer doppelten Deklaration gleichkäme!!), entsteht eine verdeckte Variable.

Achtung: In Java ist es nicht möglich die Typen der Werte und Variablen zu mischen! Dazu müssen Sie entsprechend umgewandelt (= gecastet) werden. Die Umwandlung kann automatisch (nur von links nach rechts, aufsteigend: byte->short->int->long->float->double oder char->int) oder muss manuell erfolgen. Eine Typenumwandlung ändert nur die Menge der zugeteilten Speicherplätze und wie das Programm den Speicherinhalt interpretieren soll, ohne Rücksicht auf den bestehenden Inhalt:

Beispiel:
float y = 3.14
int x = (int)y;

x besitzt den Wert 3

Beispiel Typumwandlung: byte rechnen:

Ein Byte wird normal als 0I00.0000 dargestellt. Java verwendet daher integer Zahlen mit 256 möglichen Werten(positiv und negativ!!): Damit wird eine Byte Berechnung folgendermaßen durchgeführt:

// Addition erfolgt erst ab int !

public class ByteAddition {
    public static void main(String[] args) {
        byte a = 127;
        byte b = 1;
				
        int ergebnis;
				
        // Damit wir ein byte Ergebnis erhalten, casten
        // Achtung: Ergebnis verhält sich wie ergebnis%byteWertebereich (!)
        ergebnis = (byte) (a + b);
        System.out.println(ergebnis);
    }
}



Direkte Umwandlung, Vergleiche und Anwendung sonstiger Operatoren ist nur zwischen den Elementartypen in der Reihenfolge, wie oben mit Hilfe der zugehörenden Wrapperklassen beschrieben möglich. Innerhalb der Zahlentypen werden bei Berechnungen die Ergebnisse auf den höheren Typ automatisch umgewandelt.

Beispiel: int * float = float; 2 * 3.5 = 7.0

 

Weitere freie Tutorials: Rhetorik & Kommunikation Typografie & Layout Bildbearbeitung mit Photoshop oder GIMP Vektorgrafik mit Illustrator, FreeHand, Corel Draw oder Inkscape Layout mit Indesign oder Scribus Druckvorstufe GoLive Html JavaScript Flash & ActionScript Director & Lingo Assembler DOS Java objektorientiert Perl Word Excel Access PowerPoint Outlook Betriebssystem