Variablen: Unterschied zwischen den Versionen

Aus FI-Wiki
Keine Bearbeitungszusammenfassung
 
(30 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
== Variablen ==
Eine '''Variable''' ist ein benannter Speicherbereich, in dem ein Wert abgelegt wird. 
Variablen kann man sich als Behälter für Daten vorstellen.
In Java müssen Variablen '''vor der Benutzung deklariert''' werden und besitzen immer einen festen '''[[Datentypen|Datentyp]]'''.


BILD
== Deklaration und Initialisierung ==


=== Deklaration ===
Beim '''Deklarieren''' einer Variable teilt man dem Programm mit:


Hier wird die Fließkommazahl 5.5 in den Behälter mit dem Namen x gepackt.
* welchen '''[[Datentypen|Datentyp]]''' die Variable hat 
Das nennt man Zuweisung. Der Zuweisungsoperator ist das = .
* wie der '''Name''' der Variable lautet 


Die Anweisung in Java würde also so aussehen:
Dabei wird noch '''kein Wert gespeichert'''.
double x = 5.5;
Deklaration der Variable x und gleichzeitige Initialisierung.  


'''Deklaration''': die Festlegung von Dimension, Bezeichner, Datentyp
<syntaxhighlight lang="java">
int zahl;
String text;
</syntaxhighlight>


'''Initialisierung''': der Variable einen definierten Startwertzuweisen
=== Initialisierung  ===
Nach der Deklaration kann der Variable ein Wert zugewiesen werden. Das nennt man '''Initialisierung'''. Der Zuweisungsoperator ist das "Ist-gleich-Zeichen" (=).


<syntaxhighlight lang="java">
<syntaxhighlight lang="java">
public class Flaeche {
zahl = 10;
text = "Hallo";
</syntaxhighlight>


public static void main(String[] args) {
'''Deklaration''' und '''Initialisierung''' können auch in einer Zeile erfolgen.
double breite = 10.5;
double laenge = 10;
double flaeche = laenge * breite;
System.out.println("Fläche: " + flaeche + " qm");


}
''' Syntax: '''
<syntaxhighlight lang="java">
Datentyp name = wert;
</syntaxhighlight>


}
<syntaxhighlight lang="java">
int alter = 18;
</syntaxhighlight>


</syntaxhighlight>
== Datentypen ==
Java unterscheidet zwischen '''[[Datentypen|primitiven Datentypen''' und '''Referenzdatentypen]]'''.


=== Primitive Datentypen ===
{| class="wikitable" style="width:100%; text-align:center;"
! Datentyp !! Bedeutung !! Beispiel
|-
| int || ganze Zahl || int x = 10;
|-
| double || Kommazahl || double pi = 3.14;
|-
| boolean || Wahrheitswert || boolean aktiv = true;
|-
| char || einzelnes Zeichen || char c = 'A';
|}


== Eingabe mit Scanner ==
=== Referenzdatentypen ===
Referenzdatentypen speichern eine '''Referenz auf ein Objekt'''.


<syntaxhighlight lang="java">
{| class="wikitable" style="width:100%; text-align:center;"
public static void main(String[] args) {
! Typ !! Beispiel
  // ein Objekt der Klasse java.util.Scanner wird erzeugt
|-
  java.util.Scanner scan = new java.util.Scanner(System.in);
| String || String text = "Hallo";
|-
| Array || int[] zahlen = {1, 2, 3};
|-
| Objekt || Person p = new Person();
|}


  System.out.println("Bitte etwas eingeben: ");
== Arten von Variablen ==
Je nach Gültigkeitsbereich unterscheidet man:


  // Methode nextLine liest eine Zeichenkette ein
=== Lokale Variablen ===
  // Zeichenkette wird in String-Variable s abgelegt
* Lokale Variablen werden innerhalb eines Codeblocks { } deklariert.
  String s = scan.nextLine();
* Dazu zählen [[Methoden in Java|Methoden]], [[Schleifen]], [[Verzweigungen]] (if/else) und beliebige Blöcke.
* Sie sind nur innerhalb dieses Blocks gültig und müssen vor der Benutzung initialisiert werden.


  // eingegebener String wird ausgegeben
<syntaxhighlight lang="java">
  System.out.println(s);
public void methode() {
    int x = 5;
}
}
</syntaxhighlight>
</syntaxhighlight>


== Scanner-Methoden in Java ==
=== [[Instanzvariablen]] ===
* gehören zu einem [[Klassen und Objekte|Objekt]] 
* werden in einer [[Klassen und Objekte|Klasse]] deklariert 
* existieren für jedes Objekt separat 
 
<syntaxhighlight lang="java">
class Person {
    String name;
    int alter;
}
</syntaxhighlight>


=== Zeichenketten & Zeilen ===
=== Klassenvariablen (static) ===
'''next()'''
* gehören zur [[Klassen und Objekte|Klasse]], nicht zum Objekt  
Liest das nächste Wort (endet bei Leerzeichen)  
* werden mit '''static''' gekennzeichnet  
'''nextLine()'''   
* für alle [[Klassen und Objekte|Objekte]] gleich  
  Liest die gesamte Zeile (inkl. Leerzeichen)


=== Ganzzahlen === 
<syntaxhighlight lang="java">
'''nextByte()'''
class Auto {
Liest einen byte-Wert 
    static int anzahl = 0;
'''nextShort()''' 
}
Liest einen short-Wert 
</syntaxhighlight>
'''nextInt() '''
Liest einen int-Wert 
'''nextLong() '''
Liest einen long-Wert


=== Gleitkommazahlen === 
Java kennt '''keine''' globalen Variablen.
'''nextFloat()'''  
Variablen mit großer Sichtbarkeit sind entweder Instanzvariablen oder Klassenvariablen (static), die immer zu einer Klasse gehören.
Liest einen float-Wert 
'''nextDouble()''' 
Liest einen double-Wert


=== Booleans ===   
=== Konstanten ===
'''nextBoolean()'''
Konstanten sind Variablen, deren Wert nicht geändert werden kann.  
Liest einen boolean-Wert (true oder false)
Sie werden mit '''final''' deklariert.


=== Zusätzliche Methoden === 
<syntaxhighlight lang="java">
'''hasNext()''' 
final double MWST = 0.19;
Prüft, ob ein weiteres Token vorhanden ist 
</syntaxhighlight>
'''hasNextLine()''' 
Prüft, ob eine weitere Zeile vorhanden ist 
'''hasNextInt(), hasNextDouble(), ... '''
Prüft, ob der nächste Wert ein bestimmter Datentyp ist 
'''useDelimiter(String regex)''' 
Setzt das Trennzeichen für next() (z. B. Leerzeichen, Komma, etc.)


== Gültigkeitsbereich (Scope) ==
Der '''Scope''' bestimmt, wo eine Variable verwendet werden darf:
* innerhalb eines Blocks { }
* innerhalb einer [[Methoden in Java|Methode]]
* innerhalb einer [[Klassen und Objekte|Klasse]]


[[Kategorie:Programmieren]]
== Kurzmerksatz ==
[[Kategorie:Semester1]]
'''Eine Variable wird zuerst deklariert (Typ + Name) und anschließend mit einem Wert belegt (initialisiert).'''

Aktuelle Version vom 11. Januar 2026, 11:19 Uhr

Eine Variable ist ein benannter Speicherbereich, in dem ein Wert abgelegt wird. In Java müssen Variablen vor der Benutzung deklariert werden und besitzen immer einen festen Datentyp.

Deklaration und Initialisierung

Deklaration

Beim Deklarieren einer Variable teilt man dem Programm mit:

  • welchen Datentyp die Variable hat
  • wie der Name der Variable lautet

Dabei wird noch kein Wert gespeichert.

int zahl;
String text;

Initialisierung

Nach der Deklaration kann der Variable ein Wert zugewiesen werden. Das nennt man Initialisierung. Der Zuweisungsoperator ist das "Ist-gleich-Zeichen" (=).

zahl = 10;
text = "Hallo";

Deklaration und Initialisierung können auch in einer Zeile erfolgen.

Syntax:

Datentyp name = wert;
int alter = 18;

Datentypen

Java unterscheidet zwischen primitiven Datentypen und Referenzdatentypen.

Primitive Datentypen

Datentyp Bedeutung Beispiel
int ganze Zahl int x = 10;
double Kommazahl double pi = 3.14;
boolean Wahrheitswert boolean aktiv = true;
char einzelnes Zeichen char c = 'A';

Referenzdatentypen

Referenzdatentypen speichern eine Referenz auf ein Objekt.

Typ Beispiel
String String text = "Hallo";
Array int[] zahlen = {1, 2, 3};
Objekt Person p = new Person();

Arten von Variablen

Je nach Gültigkeitsbereich unterscheidet man:

Lokale Variablen

  • Lokale Variablen werden innerhalb eines Codeblocks { } deklariert.
  • Dazu zählen Methoden, Schleifen, Verzweigungen (if/else) und beliebige Blöcke.
  • Sie sind nur innerhalb dieses Blocks gültig und müssen vor der Benutzung initialisiert werden.


public void methode() {
    int x = 5;
}

Instanzvariablen

  • gehören zu einem Objekt
  • werden in einer Klasse deklariert
  • existieren für jedes Objekt separat
class Person {
    String name;
    int alter;
}

Klassenvariablen (static)

  • gehören zur Klasse, nicht zum Objekt
  • werden mit static gekennzeichnet
  • für alle Objekte gleich
class Auto {
    static int anzahl = 0;
}

Java kennt keine globalen Variablen. Variablen mit großer Sichtbarkeit sind entweder Instanzvariablen oder Klassenvariablen (static), die immer zu einer Klasse gehören.

Konstanten

Konstanten sind Variablen, deren Wert nicht geändert werden kann. Sie werden mit final deklariert.

final double MWST = 0.19;

Gültigkeitsbereich (Scope)

Der Scope bestimmt, wo eine Variable verwendet werden darf:

  • innerhalb eines Blocks { }
  • innerhalb einer Methode
  • innerhalb einer Klasse

Kurzmerksatz

Eine Variable wird zuerst deklariert (Typ + Name) und anschließend mit einem Wert belegt (initialisiert).