Variable
Eine Variable ist in der Programmierung ein benannter Speicherbereich, der während der Programmausführung Daten aufnehmen und speichern kann. Du kannst dir eine Variable wie eine beschriftete Box vorstellen: Die Beschriftung ist der Variablenname, und in der Box liegt der gespeicherte Wert. Variablen sind eines der fundamentalsten Konzepte in jeder Programmiersprache und ermöglichen es, mit Daten flexibel zu arbeiten.
Deklaration und Initialisierung
Beim Arbeiten mit Variablen unterscheidet man drei wichtige Schritte:
- Deklaration: Du teilst dem Programm mit, dass eine Variable mit einem bestimmten Namen existiert
- Definition: Speicherplatz wird für die Variable reserviert
- Initialisierung: Der Variable wird zum ersten Mal ein Wert zugewiesen
In vielen Programmiersprachen wie Java erfolgen Deklaration und Definition gleichzeitig. Die Syntax variiert je nach Sprache:
// Java: Datentyp muss angegeben werden
int alter = 25;
String name = "Max";
double gehalt = 3500.50;
boolean istAktiv = true;
# Python: Kein Datentyp erforderlich
alter = 25
name = "Max"
gehalt = 3500.50
ist_aktiv = True
// JavaScript: let oder const verwenden
let alter = 25;
const name = "Max";
let gehalt = 3500.50;
let istAktiv = true;
Datentypen
Variablen speichern unterschiedliche Arten von Daten. Man unterscheidet zwischen primitiven Datentypen und komplexen Datentypen (Referenztypen).
Primitive Datentypen
Primitive Datentypen speichern einfache Werte direkt in der Variable:
| Datentyp | Beschreibung | Beispiel |
|---|---|---|
| int / Integer | Ganze Zahlen | 42, -17, 0 |
| float / double | Dezimalzahlen | 3.14, -0.5 |
| boolean / bool | Wahrheitswerte | true, false |
| char | Einzelnes Zeichen | 'A', '7' |
| String | Zeichenkette (Text) | "Hallo Welt" |
Komplexe Datentypen
Komplexe Datentypen speichern Referenzen (Verweise) auf Objekte im Speicher:
- Arrays: Sammlungen gleichartiger Elemente (
int[] zahlen = {1, 2, 3}) - Objekte: Instanzen von Klassen mit Eigenschaften und Methoden
- Listen, Sets, Maps: Dynamische Datenstrukturen für verschiedene Anwendungsfälle
Gültigkeitsbereich (Scope)
Der Gültigkeitsbereich (englisch: Scope) bestimmt, wo im Code eine Variable sichtbar und verwendbar ist. Dies ist ein wichtiges Konzept, um Fehler zu vermeiden und sauberen Code zu schreiben.
Lokale Variablen
Lokale Variablen werden innerhalb einer Methode, Funktion oder eines Blocks deklariert. Sie existieren nur innerhalb dieses Bereichs und werden nach dessen Ende automatisch gelöscht.
public void berechneRabatt() {
int rabatt = 10; // Lokale Variable
System.out.println(rabatt); // Funktioniert
}
// Hier ist 'rabatt' nicht mehr verfügbar
Globale Variablen und Instanzvariablen
Globale Variablen sind im gesamten Programm sichtbar. In objektorientierten Sprachen wie Java gibt es Instanzvariablen (gehören zu einem Objekt) und Klassenvariablen (mit static markiert, gehören zur Klasse selbst).
public class Mitarbeiter {
private String name; // Instanzvariable
private static int anzahl = 0; // Klassenvariable
public Mitarbeiter(String name) {
this.name = name;
anzahl++; // Zählt alle erstellten Mitarbeiter
}
}
Statische vs. dynamische Typisierung
Programmiersprachen unterscheiden sich darin, wann der Datentyp einer Variable festgelegt wird:
| Merkmal | Statische Typisierung | Dynamische Typisierung |
|---|---|---|
| Typprüfung | Zur Kompilierzeit | Zur Laufzeit |
| Typdeklaration | Erforderlich | Optional |
| Typänderung | Nicht möglich | Möglich |
| Fehler | Früh erkennbar | Erst bei Ausführung |
| Beispiele | Java, C++, TypeScript | Python, JavaScript, Ruby |
# Dynamische Typisierung in Python
wert = 42 # wert ist ein Integer
wert = "Hallo" # wert ist jetzt ein String - kein Fehler!
wert = [1, 2, 3] # wert ist jetzt eine Liste
Variablen vs. Konstanten
Im Gegensatz zu Variablen können Konstanten nach ihrer Initialisierung nicht mehr verändert werden. Sie werden verwendet, um unveränderliche Werte wie mathematische Konstanten oder Konfigurationswerte zu speichern.
// Java: final-Schlüsselwort
final double PI = 3.14159;
final int MAX_VERSUCHE = 3;
// JavaScript: const-Schlüsselwort
const PI = 3.14159;
const MAX_VERSUCHE = 3;
Konstanten werden nach Konvention in GROSSBUCHSTABEN mit Unterstrichen geschrieben (SCREAMING_SNAKE_CASE).
Namenskonventionen
Gute Variablennamen machen Code lesbar und verständlich. Je nach Programmiersprache gelten unterschiedliche Konventionen:
| Konvention | Beispiel | Verwendung |
|---|---|---|
| camelCase | firstName, numberOfItems |
Java, JavaScript (Variablen, Methoden) |
| PascalCase | FirstName, CustomerOrder |
Klassen in Java, C# |
| snake_case | first_name, number_of_items |
Python, Datenbanken |
| SCREAMING_SNAKE_CASE | MAX_VALUE, API_KEY |
Konstanten |
Best Practices für Variablennamen
- Aussagekräftig:
kundenNamestattknoderx - Keine reservierten Wörter:
class,for,ifsind keine gültigen Namen - Keine Sonderzeichen: Nur Buchstaben, Zahlen und Unterstriche
- Nicht mit Zahl beginnen:
1variableist ungültig,variable1ist erlaubt - Konsistenz: Im gesamten Projekt die gleiche Konvention verwenden
Speichermodell: Stack und Heap
Variablen werden im Arbeitsspeicher in zwei Bereichen gespeichert:
- Stack: Für lokale Variablen und primitive Datentypen. Schneller Zugriff, automatische Speicherverwaltung nach dem LIFO-Prinzip (Last In, First Out)
- Heap: Für Objekte und komplexe Datentypen. Flexiblere Speicherverwaltung, wird durch Garbage Collection bereinigt
Bei Referenztypen wird die Referenz (Speicheradresse) auf dem Stack gespeichert, während das eigentliche Objekt auf dem Heap liegt.
Variablen in der IT-Ausbildung
Das Verständnis von Variablen ist für alle IT-Berufe essentiell. Als Fachinformatiker für Anwendungsentwicklung arbeitest du täglich mit Variablen, um Daten zu verarbeiten und Programme zu entwickeln. Auch Fachinformatiker für Systemintegration begegnen Variablen in Shell-Skripten und Konfigurationsdateien.
In der IHK-Prüfung werden häufig Fragen zu Datentypen, Gültigkeitsbereichen und der korrekten Verwendung von Variablen gestellt. Besonders wichtig ist das Verständnis des Unterschieds zwischen Wertübergabe (Call by Value) und Referenzübergabe (Call by Reference).