1. Java
Java ist eine objektorientierte, plattformunabhängige und stark typisierte Programmiersprache, die 1995 von Sun Microsystems (heute Oracle) veröffentlicht wurde. Sie wurde entwickelt, um Programme zu schreiben, die auf verschiedenen Geräten (Computer, Smartphones, Server) laufen können – nach dem Motto: “Write once, run anywhere.”
2. Kotlin
Kotlin ist eine statische, objektorientierte und funktionale Programmiersprache, die von JetBrains entwickelt wurde. Sie läuft – wie Java – auf der Java Virtual Machine (JVM) und ist vollständig mit Java kompatibel. Ziel von Kotlin war es, eine modernere, sicherere und kompaktere Alternative zu Java zu schaffen, die gleichzeitig alle bestehenden Java-Bibliotheken weiterverwenden kann. Kotlin unterstützt die gleichen OOP-Grundprinzipien wie Java: Abstraktion, Kapselung, Vererbung und Polymorphismus. Allerdings ist die Syntax einfacher und der Code weniger fehleranfällig.
3. Variablen & Typinferenz
Java
int x = 10;
String name = "das is ein string";
Kotlin
val x = 10
var name = "das ist auch ein string"
In Kotlin erkennt der Compiler den Typ automatisch (Typinferenz) und unterscheidet zwischen val (konstant) und var (veränderbar). In Java müssen Typen explizit angegeben werden.
4. Funktionen
int add(int a, int b) {
return a + b;
}
Kotlin
fun add(a: Int, b: Int): Int = a + b
Kotlin verwendet das Schlüsselwort fun und erlaubt kompakte Einzeiler-Funktionen.
5.Klassen & Properties
public class Person {
private String name;
public Person(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
Eine class in Java, die ein property, ein Contructor und einen Getter hat, mit dem man auf die private variable zugreifen kann.
Kotlin
class Person(val name: String)
Kotlin erzeugt Konstruktor, Getter und Setter automatisch — weniger Boilerplate-Code.
6.Null-Sicherheit
String name = null; // kann NullPointerException verursachen
Kotlin
var name: String? = null
Kotlin zwingt dich, Nullwerte explizit zu kennzeichnen (?) und schützt so vor NullPointerExceptions.
7.Schleifen
for (int i = 1; i <= 5; i++) {
System.out.println(i);
}
Kotlin
for (i in 1..5) {
println(i)
}
Kotlin verwendet Ranges (1..5) und eine lesbarere Syntax.
8.Collections & Lambda-Ausdrücke
List<String> names = Arrays.asList("lila", "grün", "gelb");
names.forEach(n -> System.out.println(n));
Kotlin
val names = listOf("lila", "grün", "gelb")
names.forEach { println(it) }
Kotlin unterstützt Lambda-Ausdrücke direkt und bietet eine klarere, funktionale Syntax.
9.When vs Switch
switch (tag) {
case 1: System.out.println("Montag"); break;
case 2: System.out.println("Dienstag"); break;
}
Kotlin
when (tag) {
1 -> println("Montag")
2 -> println("Dienstag")
}
In Kotlin ist das switch ein when.
10.String Interpolation
String name = "Laila";
System.out.println("Hallo " + name);
Kotlin
val name = "Laila"
println("Hallo $name")