Objektorientierte Programmierung: Unterschied zwischen den Versionen
Drlue (Diskussion | Beiträge) |
Drlue (Diskussion | Beiträge) |
||
| Zeile 36: | Zeile 36: | ||
== Klasse == | == Klasse == | ||
Eine '''Klasse''' kann man sich wie eine Vorlage vorstellen. Aus dieser Vorlage können '''Instanzen''' erstellt werden. | |||
=== Konstruktor === | |||
Jede '''Klasse''' hat einen Konstruktor, ist dieser leer, d.h. er nimmt keine Parameter, muss dieser nicht geschrieben werden. Der Konstruktor heißt immer gleich wie die Klasse selbst. | |||
<syntaxhighlight lang='java' line> | |||
public class Animal { | |||
private String name; | |||
//Standardkonstruktor wird verwendet. | |||
} | |||
... | |||
Animal a = new Animal(); | |||
</syntaxhighlight> | |||
Wollen wir nur beispielsweise garantieren, dass ein '''Animal''' bei der Instanzierung einen Namen hat, so könnten wir den '''Konstruktor''' verändern. | |||
<syntaxhighlight lang='java' line> | |||
public class Animal { | |||
private String name; | |||
public Animal(String name) { | |||
this.name = name; | |||
} | |||
} | |||
... | |||
Animal a = new Animal("Alfons"); | |||
</syntaxhighlight> | |||
== Abtsrakte Klasse == | == Abtsrakte Klasse == | ||
Version vom 17. Januar 2021, 15:36 Uhr
Objektorientierte Programmierung
Java
Java ist eine Objektorientierte Programmiersprache. In einigen Punkten nimmt Sie die Objektorientierung nicht so streng wie andere Sprachen. Ein Beispiel hierfür wären die primitiven Datentypen. Somit ist in Java nicht alles ein Objekt.
Primitive Datentypen
In Java gibt es eine vielzahl von primitiven Datentypen. Sie unterscheiden sich darin, dass Sie kein Object sind. Sie haben keine Methoden und auch keine Attribute. Wird eine Variable mit einem primitiven Datentyp erstellt und dieser Variable ein Wert zugewiesen, so enthält diese Variable den wirklichen Wert und nicht nur eine Referenz auf das eigentliche Objekt:
//Variable a enthält den Wert 10
int a = 10;
//Variable b enthält nur den Verweis auf das Integer Objekt mit dem Wert 10
Integer b = Integer.valueOf(10);
Zu jedem primitiven Datentyp, gibt es einen entsprechende Klasse:
| primitiver Datentyp | Klasse |
|---|---|
| int | Integer |
| float | Float |
| double | Double |
| char | Character |
| boolean | Boolean |
Primitive Datentypen können automatisch in ihr entsprechendes Klassenäquivalent umgewandelt werden und natürlich umgekehrt. Dieser Prozess nennt sich Autoboxing. Dies ist vorallem von Vorteil, wenn mit Collections (Listen,...) gearbeitet wird, da diese nur mit Klassen funktionieren.
//Umwandlung der Zahl 10 in ein Integer Object
Integer b = 10;
//Integer Object wird in primitive Zahl 10 umgewandelt
int c = b;
Klasse
Eine Klasse kann man sich wie eine Vorlage vorstellen. Aus dieser Vorlage können Instanzen erstellt werden.
Konstruktor
Jede Klasse hat einen Konstruktor, ist dieser leer, d.h. er nimmt keine Parameter, muss dieser nicht geschrieben werden. Der Konstruktor heißt immer gleich wie die Klasse selbst.
public class Animal {
private String name;
//Standardkonstruktor wird verwendet.
}
...
Animal a = new Animal();
Wollen wir nur beispielsweise garantieren, dass ein Animal bei der Instanzierung einen Namen hat, so könnten wir den Konstruktor verändern.
public class Animal {
private String name;
public Animal(String name) {
this.name = name;
}
}
...
Animal a = new Animal("Alfons");