Zum Hauptinhalt springen

Tag 2

Repetition​

Bisheriges Wissen zu Objekten, Methoden und Referenzen​

Einlesen von Daten ĂĽber die Konsole

Scanner s = new Scanner(System.in);
int xy = s.nextInt();

Hier wird ein Scanner-Objekt mit dem Namen "s" erstellt.

Datentypen und Casting

Wenn man einen Datentyp in einen anderen umwandeln möchte, muss man das Definieren (wird auch Casting genannt).

dblZahl =(double) s.nextInt();

Ausgabe

Um etwas auf der Konsole auszugeben muss System.out.println() benutzt werden.

Coding Vorgaben M226

  • Klassen beginnen mit einem Grossbuchstaben und einem C (CZimmer)
  • Variablen und Methoden beginnen mit einem Kleinbuchstaben

CamelCase

Die CamelCase-Notation ist eine Namenskonvention, bei der ein Name aus mehreren Wörtern besteht. Dabei wird jedes Wort mit einem Grossbuchstaben begonnen und alle Wörter werden zusammengeschrieben.

Beispiele:

// lowerCamelCase
kleinerBaum
gruenesBlatt

// UpperCamleCase
GrosserBaum
RotesBlatt

Klassen und Objekte​

Klasse

Klassen werden genutzt um beliebig viele Objekte in ihnen zu erzeugen.

public class Klasse { // <-- das ist eine Klasse
public static void main(String[] args) {
Objekte o1 = new Objekt(); // <-- das ist ein Objekt
}
}

Objekte

Um ein Objekt zu konstruieren, wird eine bestimmte Funktion innerhalb der Klasse aufgerufen (auch Konstruktor genannt). Ein Konstruktor muss den gleichen Namen wie die Klasse haben.

Um ein Objekt aus einer Klasse zu konstruieren wird sie mit new aufgerufen.

Point einPoint = new Point();

Um auf Attribute zu zugreifen, muss zuerst ein Objekt (oder auch Instanz genannt) erstellt sein.

Point einPoint = new Point();
einPoint.x_koord = 4;

Referenzen​

Was sind Referenzen in Java?​

Wenn in Java ein Objekt erstellt wird, werden fĂĽr dieses Objekt im Memory Bereiche reserviert und referenziert. In C sind das die Pointer.

Werden zwei Objekte wie folgt erstellt...

Point a = new Point(0,0);
Point b = new Point(3,4);

...sieht es im Speicher so aus.

Speicher von Point a und b

Wird die Variable a mit der Variable b ĂĽberschrieben...

a = b;

...sieht es im Speicher so aus.

a und b gleicher Speicher

Jetzt haben beide Objekte die gleiche Referenz. Wird also der Wert von a verändert wird b mit verändert, da sie auf den gleichen Speicherbereich zeigen.

[!TIP] Die Begriffe Referenz und Pointer sind das selbe. Eine Variable von einem Objekt ist eigentlich nichts anderes als ein Pointer.

Was bedeutet das Vergleichen mit dem Operator ==?​

Werden zwei Variablen mit dem Operator == verglichen, wird auf Objektidentität und nicht auf Inhaltsidentität überprüft.

Beispiel:

public class Main
{
public static void main(String[] args) {
Integer a = new Integer(10);
Integer b = new Integer(10);

if(a == b) {
System.out.println("gleich");
}
else {
System.out.println("nicht gleich");
}
}
}

Hier wĂĽrde "nicht gleich" herauskommen da sie nicht den gleichen Speicherbereich nutzen. Wird equals() verwendet...

public class Main
{
public static void main(String[] args) {
Integer a = new Integer(10);
Integer b = new Integer(10);

if(a.equals(b)) {
System.out.println("gleich");
}
else {
System.out.println("nicht gleich");
}
}
}

...wird "gleich" herauskommen, da equals() auf Inhaltsidentität überprüft.

Konstruktor​

Was ist ein Konstruktor?​

Kostruktors werden gebraucht um neue Objekte von einer Klasse zu erzeugen. Jede Klasse hat einen Konstruktor, wird er nicht selbst programmiert, gibt der Compiler einen Standardkonstruktor vor. Jeder Konstruktor braucht einen sogenannten "Modifier", im Beispiel ist das public. Es ist schlau als Modifier public zu verwenden, damit man auch von aussen auf den Konstruktor zugreifen kann.

Beispiel:

public class Baum {

public Baum() { // <-- Das ist ein Konstruktor
// code
}

}

Im Konstrukor können direkt Daten übergeben werden. Die Übergabeparameter müssen im Konstruktor definiert werden und könnte so ausschauen:

public class Baum {

private String art;

public Baum(String art /* <-- Das ist der Ăśbergabeparameter */) {

this.art = art;

}

}

Welche Regeln gelten bezüglich der Erstellung eines Konstruktors?​

Die wichtigste Regel ist, dass der Konstruktor gleich heissen muss wie die Klasse.

Methoden​

Wofür sind Methoden gedacht?​

Methoden sind Handlungen, die ein Objekt ausfĂĽhren kann.

Beispiel:

private int x_koord;
private int y_koord;

public void addToX(int wert) {
x_koord += wert;
}

public void addToY(int wert) {
y_koord += wert;
}

Diese Methoden können genutzt werden, um Werte in die X- & Y-Koordinaten zu schreiben.

Methoden werden wie folgt verwendet:

Point einPoint = new Point();
einPoint.addToX(30);
einPoint.addToY(30);

Jetzt ist allerdings der Point nicht richtig initialisiert. Das kann ĂĽber einen Konstruktor erreicht werden.


Quellen: Moodle, Studyflix