Beruflich Dokumente
Kultur Dokumente
05 Klassen
05 Klassen
Adrian Schüpbach
adrian_laurent.schuepbach@alumni.ethz.ch
I Klassen
I Typen
I Objekte
I Scope
Klasse1
Klasse2
Objekt 1
new Klasse1
Klasse1
Klasse2
Objekt 1
new Klasse1 Objekt 2
new Klasse1
Klasse1
Klasse2
Objekt 1
new Klasse1 Objekt 2
new Klasse1
Klasse1 Objekt 3
new Klasse1
Klasse2
Objekt 1
new Klasse1 Objekt 2
new Klasse1
Klasse1 Objekt 3
new Klasse1
new Klasse2
Klasse2 Objekt 4
Objekt 1
new Klasse1 Objekt 2
new Klasse1
Klasse1 Objekt 3
new Klasse1
new Klasse2
Klasse2 Objekt 4
new Klasse2
Objekt 5
Objekt 1
new Klasse1 Objekt 2
new Klasse1
Klasse1 Objekt 3
new Klasse1
new Klasse2
Klasse2 Objekt 4
new Klasse2
new Klasse2 Objekt 5
Objekt 6
Hauptprogramm
class KomplexeZahl {
int realTeil ; int imaginaerTeil ;
I Konstruktor
I Ähnlich, wie “normale” Methode
I Hat keinen Rückgabetyp
I Muss gleich heissen, wie Klasse
I Kann Parameterliste haben
I Beispiel:
I Zwei komplexe Zahlen addieren
I Resultat einer neuen Variablen zuweisen
I Beispiel:
I Zwei komplexe Zahlen addieren
I Resultat einer neuen Variablen zuweisen
I Algorithmus: Additionsmethode implementieren
1. Gehört zur Klasse der komplexen Zahlen
2. Nimmt eine komplexe Zahl als Argument
3. Addiert diese zu sich
4. Erzeugt neues Objekt mit Resultat
5. Gibt dieses Objekt zurück
class KomplexeZahl {
int realTeil ; int imaginaerTeil ;
Hauptprogramm
KomplexeZahl c3 = c1.add(c2 );
c3. ausgabe ();
}
}
I class Datenstruktur
I ...
I → Compiler erzeugt für jede Klasse separate class-Datei
Innere Klasse
public class Programm52 {
public static class InnereKlasse {
int f;
}
public static void main( String [] args) {
InnereKlasse ik = new InnereKlasse ();
}
}
Demo
I Mehrere Personen
I Jede Person hat mehrere Telefonnummern
I → Alles in einer Datei
Scope: for-Schleife
// hier nicht
}
}
Wert Zeichen/Darstellung
97 ’a’
65 ’A’
105 ’i’
73 ’I’
32 ’’
46 ’.’
33 ’!’
Wert Zeichen/Darstellung
48 ’0’
49 ’1’
50 ’2’
.. ...
55 ’7’
56 ’8’
57 ’9’
I Achtung:
I Tastatur liefert immer Zeichen, keine Zahlen!
I Bildschirm stellt Zeichen anhand eines Zahlenwertes dar
I ASCII-Tabelle
I Übersetzt 8Bit (7Bit in USA...) Zeichenwerte
I Andere Tabelle, je nach Land
I CH: Tabelle 850
I Wir brauchen z.Bsp. Umlaute und Akzente
I UTF16-Tabelle
I Einheitlich, international
I Beinhaltet ASCII-Tabelle (7Bit)
I ASCII-Tabelle
I Übersetzt 8Bit (7Bit in USA...) Zeichenwerte
I Andere Tabelle, je nach Land
I CH: Tabelle 850
I Wir brauchen z.Bsp. Umlaute und Akzente
I UTF16-Tabelle
I Einheitlich, international
I Beinhaltet ASCII-Tabelle (7Bit)
Strings
Nützliche Methoden:
I length(): Gibt die Länge des Strings zurück (Anzahl Zeichen)
I substring(): Git einen Teil des Strings zurück
I charAt(): Gibt ein einzelnes Zeichen zurück
I → Java API nachschauen + Vorschläge in Eclipse
Demo
I Mehrere Personen
I Jede Person hat mehrere Telefonnummern
I Person hat einen Namen! → String
I → Mehrere Dateien