PKJ 2005/1 Stefan Dissmann Vorwoche - Klasse public class Studierende { private String name,...
-
Upload
karoline-anker -
Category
Documents
-
view
118 -
download
1
Transcript of PKJ 2005/1 Stefan Dissmann Vorwoche - Klasse public class Studierende { private String name,...
![Page 1: PKJ 2005/1 Stefan Dissmann Vorwoche - Klasse public class Studierende { private String name, vorname, studiengang; private int matNr, semester; private.](https://reader034.fdocuments.net/reader034/viewer/2022042601/55204d6249795902118b6b48/html5/thumbnails/1.jpg)
PKJ 2005/1Stefan Dissmann
Vorwoche - Klasse
public class Studierende {
private String name, vorname, studiengang;
private int matNr, semester;
private Datum geburt, beginn;
}
public class Datum {
private int tag, monat, jahr;
}
![Page 2: PKJ 2005/1 Stefan Dissmann Vorwoche - Klasse public class Studierende { private String name, vorname, studiengang; private int matNr, semester; private.](https://reader034.fdocuments.net/reader034/viewer/2022042601/55204d6249795902118b6b48/html5/thumbnails/2.jpg)
PKJ 2005/2Stefan Dissmann
Klasse Studierende
public class Studierende {private String name, vorname, studiengang;private int matNr, semester;private Datum geburt, beginn;
public void setzeName(String n) { name = n; }
public String gibName() { return name; }
public void zeigeName() { System.out.println(name);}
}
![Page 3: PKJ 2005/1 Stefan Dissmann Vorwoche - Klasse public class Studierende { private String name, vorname, studiengang; private int matNr, semester; private.](https://reader034.fdocuments.net/reader034/viewer/2022042601/55204d6249795902118b6b48/html5/thumbnails/3.jpg)
PKJ 2005/3Stefan Dissmann
Klasse Studierende
public class TestStud {
public static void main(String[] args) {
Studierende stud1, stud2;
stud1 = new Studierende();
stud1.setzeName("Schmidt");
stud2 = stud1;
stud2.setzeName("Müller");
stud1.zeigeName();
stud2.zeigeName();
}
}
![Page 4: PKJ 2005/1 Stefan Dissmann Vorwoche - Klasse public class Studierende { private String name, vorname, studiengang; private int matNr, semester; private.](https://reader034.fdocuments.net/reader034/viewer/2022042601/55204d6249795902118b6b48/html5/thumbnails/4.jpg)
PKJ 2005/4Stefan Dissmann
Klasse Studierende
public class TestStud {
public static void main(String[] args) {
Studierende stud1, stud2;
stud1 = new Studierende();
stud1.setzeName("Schmidt");
stud2 = stud1;
stud2.setzeName("Müller");
stud1.zeigeName();
stud2.zeigeName();
}
}
Ausgabe: Müller
Müller
![Page 5: PKJ 2005/1 Stefan Dissmann Vorwoche - Klasse public class Studierende { private String name, vorname, studiengang; private int matNr, semester; private.](https://reader034.fdocuments.net/reader034/viewer/2022042601/55204d6249795902118b6b48/html5/thumbnails/5.jpg)
PKJ 2005/5Stefan Dissmann
Referenzen auf Klassen
Studierende stud1, stud2;
stud1 = new Studierende();
stud1.setzeName("Schmidt");
stud2 = stud1;
stud2.setzeName("Müller");
stud1.zeigeName();
stud2.zeigeName();
![Page 6: PKJ 2005/1 Stefan Dissmann Vorwoche - Klasse public class Studierende { private String name, vorname, studiengang; private int matNr, semester; private.](https://reader034.fdocuments.net/reader034/viewer/2022042601/55204d6249795902118b6b48/html5/thumbnails/6.jpg)
PKJ 2005/6Stefan Dissmann
Referenzen auf Klassen
Studierende stud1, stud2;
stud1 = new Studierende();
stud1.setzeName("Schmidt");
stud2 = stud1;
stud2.setzeName("Müller");
stud1.zeigeName();
stud2.zeigeName();
stud1 stud2
![Page 7: PKJ 2005/1 Stefan Dissmann Vorwoche - Klasse public class Studierende { private String name, vorname, studiengang; private int matNr, semester; private.](https://reader034.fdocuments.net/reader034/viewer/2022042601/55204d6249795902118b6b48/html5/thumbnails/7.jpg)
PKJ 2005/7Stefan Dissmann
Referenzen auf Klassen
Studierende stud1, stud2;
stud1 = new Studierende();
stud1.setzeName("Schmidt");
stud2 = stud1;
stud2.setzeName("Müller");
stud1.zeigeName();
stud2.zeigeName();
stud1 stud2
Studierende
name:
![Page 8: PKJ 2005/1 Stefan Dissmann Vorwoche - Klasse public class Studierende { private String name, vorname, studiengang; private int matNr, semester; private.](https://reader034.fdocuments.net/reader034/viewer/2022042601/55204d6249795902118b6b48/html5/thumbnails/8.jpg)
PKJ 2005/8Stefan Dissmann
Referenzen auf Klassen
Studierende stud1, stud2;
stud1 = new Studierende();
stud1.setzeName("Schmidt");
stud2 = stud1;
stud2.setzeName("Müller");
stud1.zeigeName();
stud2.zeigeName();
stud1 stud2
Studierende
name:"Schmidt"
![Page 9: PKJ 2005/1 Stefan Dissmann Vorwoche - Klasse public class Studierende { private String name, vorname, studiengang; private int matNr, semester; private.](https://reader034.fdocuments.net/reader034/viewer/2022042601/55204d6249795902118b6b48/html5/thumbnails/9.jpg)
PKJ 2005/9Stefan Dissmann
Referenzen auf Klassen
Studierende stud1, stud2;
stud1 = new Studierende();
stud1.setzeName("Schmidt");
stud2 = stud1;
stud2.setzeName("Müller");
stud1.zeigeName();
stud2.zeigeName();
stud1 stud2
Studierende
name:"Schmidt"
![Page 10: PKJ 2005/1 Stefan Dissmann Vorwoche - Klasse public class Studierende { private String name, vorname, studiengang; private int matNr, semester; private.](https://reader034.fdocuments.net/reader034/viewer/2022042601/55204d6249795902118b6b48/html5/thumbnails/10.jpg)
PKJ 2005/10Stefan Dissmann
Referenzen auf Klassen
Studierende stud1, stud2;
stud1 = new Studierende();
stud1.setzeName("Schmidt");
stud2 = stud1;
stud2.setzeName("Müller");
stud1.zeigeName();
stud2.zeigeName();
stud1 stud2
Studierende
name:„Müller"
![Page 11: PKJ 2005/1 Stefan Dissmann Vorwoche - Klasse public class Studierende { private String name, vorname, studiengang; private int matNr, semester; private.](https://reader034.fdocuments.net/reader034/viewer/2022042601/55204d6249795902118b6b48/html5/thumbnails/11.jpg)
PKJ 2005/11Stefan Dissmann
Referenzen auf Klassen
Studierende stud1, stud2;
stud1 = new Studierende();
stud1.setzeName("Schmidt");
stud2 = stud1;
stud2.setzeName("Müller");
stud1.zeigeName();
stud2.zeigeName();
stud1 stud2
Studierende
name:„Müller"
![Page 12: PKJ 2005/1 Stefan Dissmann Vorwoche - Klasse public class Studierende { private String name, vorname, studiengang; private int matNr, semester; private.](https://reader034.fdocuments.net/reader034/viewer/2022042601/55204d6249795902118b6b48/html5/thumbnails/12.jpg)
PKJ 2005/12Stefan Dissmann
Referenzen auf Klassen
Studierende stud1, stud2;
stud1 = new Studierende();
stud1.setzeName("Schmidt");
stud2 = stud1;
stud2.setzeName("Müller");
stud1.zeigeName();
stud2.zeigeName();
stud1 stud2
Studierende
name:„Müller"
![Page 13: PKJ 2005/1 Stefan Dissmann Vorwoche - Klasse public class Studierende { private String name, vorname, studiengang; private int matNr, semester; private.](https://reader034.fdocuments.net/reader034/viewer/2022042601/55204d6249795902118b6b48/html5/thumbnails/13.jpg)
PKJ 2005/13Stefan Dissmann
Referenzen auf Klassen
Studierende stud1, stud2;
stud1 = new Studierende();
stud1.setzeName("Schmidt");
stud2 = stud1;
stud2.setzeName("Müller");
stud1.zeigeName();
stud2.zeigeName();
stud1 stud2
Studierende
name:„Müller"
Mehrere Referenzen können auf ein Objekt verweisen
![Page 14: PKJ 2005/1 Stefan Dissmann Vorwoche - Klasse public class Studierende { private String name, vorname, studiengang; private int matNr, semester; private.](https://reader034.fdocuments.net/reader034/viewer/2022042601/55204d6249795902118b6b48/html5/thumbnails/14.jpg)
PKJ 2005/14Stefan Dissmann
Referenzen auf Klassen
Studierende stud1, stud2;
stud1 = new Studierende();
stud1.setzeName("Schmidt");
stud2 = stud1;
stud2.setzeName("Müller");
stud1.zeigeName();
stud2.zeigeName();
stud1 stud2
Studierende
name:„Müller"
Mehrere Referenzen können auf ein Objekt verweisen
Referenzen können während der Ausführung gesetzt werden
![Page 15: PKJ 2005/1 Stefan Dissmann Vorwoche - Klasse public class Studierende { private String name, vorname, studiengang; private int matNr, semester; private.](https://reader034.fdocuments.net/reader034/viewer/2022042601/55204d6249795902118b6b48/html5/thumbnails/15.jpg)
PKJ 2005/15Stefan Dissmann
Attribute - Initialisierung
• Variablen in Methoden sind nicht initialisiert!
• Attribute in Klassen sind immer mit „0“ initialisiert:• bei Zahlen der Wert 0,• bei boolean der Wert false,• bei Referenzen auf Klassen der Wert null
• Allerdings: Studierende haben andere Werte!
![Page 16: PKJ 2005/1 Stefan Dissmann Vorwoche - Klasse public class Studierende { private String name, vorname, studiengang; private int matNr, semester; private.](https://reader034.fdocuments.net/reader034/viewer/2022042601/55204d6249795902118b6b48/html5/thumbnails/16.jpg)
PKJ 2005/16Stefan Dissmann
Attribute - Initialisierung
public class Studierende {
private String name, vorname, studiengang;
private int matNr, semester=1;
private Datum geburt, beginn;
…
}
Initialisierung bei Vereinbarung:• nicht sehr flexibel• Wert wird für alle Objekte gesetzt
![Page 17: PKJ 2005/1 Stefan Dissmann Vorwoche - Klasse public class Studierende { private String name, vorname, studiengang; private int matNr, semester; private.](https://reader034.fdocuments.net/reader034/viewer/2022042601/55204d6249795902118b6b48/html5/thumbnails/17.jpg)
PKJ 2005/17Stefan Dissmann
Attribute – Zuweisung durch expliziten Konstruktor
public class Studierende {
private String name, vorname, studiengang;
private int matNr, semester;
private Datum geburt, beginn;
public Studierende (String n, String vn, String sg) {
name = n;
vorname = vn;
studiengang = sg;
semester = 1;
}
…
}
![Page 18: PKJ 2005/1 Stefan Dissmann Vorwoche - Klasse public class Studierende { private String name, vorname, studiengang; private int matNr, semester; private.](https://reader034.fdocuments.net/reader034/viewer/2022042601/55204d6249795902118b6b48/html5/thumbnails/18.jpg)
PKJ 2005/18Stefan Dissmann
Attribute – Zuweisung durch expliziten Konstruktor
public Studierende (String n, String vn, String sg) {
name = n;
…
}
Expliziter Konstruktor ist spezielle Methode:• Name = Name der Klasse• keine Angabe eines Rückgabetyps, kein return• zurückgegeben wird immer ein Objekt der Klasse• Aufruf mit new• Rumpf wird nach Initialisierung ausgeführt • Rumpf kann Programmkonstrukte enthalten
![Page 19: PKJ 2005/1 Stefan Dissmann Vorwoche - Klasse public class Studierende { private String name, vorname, studiengang; private int matNr, semester; private.](https://reader034.fdocuments.net/reader034/viewer/2022042601/55204d6249795902118b6b48/html5/thumbnails/19.jpg)
PKJ 2005/19Stefan Dissmann
Konstruktoren
• Impliziter Konstruktor:• steht standardmäßig zur Verfügung• hat keine Parameter• „tut nichts“:
public Studierende () {}
• Sobald ein expliziter Konstruktor vereinbart ist,ist der Standardkonstruktor nicht mehr verfügbar.
• Aber:Es kann ein neuer paramterloser Konstruktor vereinbart werden, z.B.: public Studierende () {name = “kein Name“;}
![Page 20: PKJ 2005/1 Stefan Dissmann Vorwoche - Klasse public class Studierende { private String name, vorname, studiengang; private int matNr, semester; private.](https://reader034.fdocuments.net/reader034/viewer/2022042601/55204d6249795902118b6b48/html5/thumbnails/20.jpg)
PKJ 2005/20Stefan Dissmann
Konstruktoren
In einer Klasse möglich:mehrere Konstruktoren mitunterschiedlichen Parameterlisten
public class Studierende {
public Studierende () {name = “kein Name“;}
public Studierende (String n, String vn, String sg) {
name = n;
vorname = vn;
studiengang = sg;
}
…
}
![Page 21: PKJ 2005/1 Stefan Dissmann Vorwoche - Klasse public class Studierende { private String name, vorname, studiengang; private int matNr, semester; private.](https://reader034.fdocuments.net/reader034/viewer/2022042601/55204d6249795902118b6b48/html5/thumbnails/21.jpg)
PKJ 2005/21Stefan Dissmann
Konstruktoren
In einer Klasse möglich:mehrere Konstruktoren mitunterschiedlichen Parameterlisten
public class Studierende {
public Studierende () {name = “kein Name“;}
public Studierende (String n, String vn, String sg) {
name = n;
vorname = vn;
studiengang = sg;
}
…
}
![Page 22: PKJ 2005/1 Stefan Dissmann Vorwoche - Klasse public class Studierende { private String name, vorname, studiengang; private int matNr, semester; private.](https://reader034.fdocuments.net/reader034/viewer/2022042601/55204d6249795902118b6b48/html5/thumbnails/22.jpg)
PKJ 2005/22Stefan Dissmann
Methoden
Allgemein gilt:Methoden mit gleichen Namenwerden anhand ihrer Parameterlisten
unterschieden!
int m(int p, int q) { … }
int m(char p, int q) { … }
int m(int p) { … }
int m(int p, char q) { … }
![Page 23: PKJ 2005/1 Stefan Dissmann Vorwoche - Klasse public class Studierende { private String name, vorname, studiengang; private int matNr, semester; private.](https://reader034.fdocuments.net/reader034/viewer/2022042601/55204d6249795902118b6b48/html5/thumbnails/23.jpg)
PKJ 2005/23Stefan Dissmann
Methoden
Allgemein gilt:Methoden mit gleichen Namenwerden anhand ihrer Parameterlisten
unterschieden!
int m(int p, int q) { … }
int m(char p, int q) { … }
int m(int p) { … }
int m(int p, char q) { … }
aber Konflikt mit: void m(int p) { … }
![Page 24: PKJ 2005/1 Stefan Dissmann Vorwoche - Klasse public class Studierende { private String name, vorname, studiengang; private int matNr, semester; private.](https://reader034.fdocuments.net/reader034/viewer/2022042601/55204d6249795902118b6b48/html5/thumbnails/24.jpg)
PKJ 2005/24Stefan Dissmann
Beispiel: Klasse String
Konstruktoren (insgesamt 13):
String() Initializes a newly created String object so that it represents an empty character sequence.
String(byte[] ascii, int hibyte) Deprecated. This method ...
String(char[] value) Allocates a new String ...
String(char[] value, int offset, int count) Allocates a new String ...
String(StringBuffer buffer) Allocates a new string ...
…
![Page 25: PKJ 2005/1 Stefan Dissmann Vorwoche - Klasse public class Studierende { private String name, vorname, studiengang; private int matNr, semester; private.](https://reader034.fdocuments.net/reader034/viewer/2022042601/55204d6249795902118b6b48/html5/thumbnails/25.jpg)
PKJ 2005/25Stefan Dissmann
Beispiel: Klasse String
Konstruktoren (insgesamt 13):
String() Initializes a newly created String object so that it represents an empty character sequence.
String(byte[] ascii, int hibyte) Deprecated. This method ...
String(char[] value) Allocates a new String ...
String(char[] value, int offset, int count) Allocates a new String ...
String(StringBuffer buffer) Allocates a new string ...
…
![Page 26: PKJ 2005/1 Stefan Dissmann Vorwoche - Klasse public class Studierende { private String name, vorname, studiengang; private int matNr, semester; private.](https://reader034.fdocuments.net/reader034/viewer/2022042601/55204d6249795902118b6b48/html5/thumbnails/26.jpg)
PKJ 2005/26Stefan Dissmann
Beispiel: Klasse String
Methoden (insgesamt ca. 60):
char charAt(int index) Returns the char value at the specified index.
intcompareTo(String anotherString) Compares two strings lexicographically.
int compareToIgnoreCases(String str) Compares two strings lexicographically, ignoring case differences.
String concat(String str) Concatenates the specified string to the end of this string.
boolean endsWith(String suffix) Tests if this string ends with the specified suffix.
…
![Page 27: PKJ 2005/1 Stefan Dissmann Vorwoche - Klasse public class Studierende { private String name, vorname, studiengang; private int matNr, semester; private.](https://reader034.fdocuments.net/reader034/viewer/2022042601/55204d6249795902118b6b48/html5/thumbnails/27.jpg)
PKJ 2005/27Stefan Dissmann
Beispiel: Klasse String
Methoden (Fortsetzung):
int indexOf(int ch) Returns the index within this string of the first occurrence of the specified character.
int indexOf(String str) Returns the index within this string of the first occurrence of the specified substring.
int lastIndexOf(int ch) Returns the index within this string of the last occurrence of the specified character.
int length() Returns the length of this string.
…
![Page 28: PKJ 2005/1 Stefan Dissmann Vorwoche - Klasse public class Studierende { private String name, vorname, studiengang; private int matNr, semester; private.](https://reader034.fdocuments.net/reader034/viewer/2022042601/55204d6249795902118b6b48/html5/thumbnails/28.jpg)
PKJ 2005/28Stefan Dissmann
Beispiel: Klasse String
Hinweis:String ist eine etwas untypische Klasse!
• Objekte werden nur bei Konstruktion mit dem Text gefüllt.• Methoden liefern entweder
- Informationen über Objekt (z.B. charAt()) oder- liefern neu konstruiertes Objekt (z.B. concat(String str))
• änderbare Textobjekte bietet die Klasse StringBuffer
![Page 29: PKJ 2005/1 Stefan Dissmann Vorwoche - Klasse public class Studierende { private String name, vorname, studiengang; private int matNr, semester; private.](https://reader034.fdocuments.net/reader034/viewer/2022042601/55204d6249795902118b6b48/html5/thumbnails/29.jpg)
PKJ 2005/29Stefan Dissmann
Lebensdauer von Objekten
Objekt wird durch Aufruf eines Konstruktors erzeugt!
Wann und wie wird ein Objekt vernichtet?
![Page 30: PKJ 2005/1 Stefan Dissmann Vorwoche - Klasse public class Studierende { private String name, vorname, studiengang; private int matNr, semester; private.](https://reader034.fdocuments.net/reader034/viewer/2022042601/55204d6249795902118b6b48/html5/thumbnails/30.jpg)
PKJ 2005/30Stefan Dissmann
Lebensdauer von Objekten
Objekt wird durch Aufruf eines Konstruktors erzeugt!
Wann und wie wird ein Objekt vernichtet?Im Prinzip gar nicht; Objekte existieren immer
weiter!
![Page 31: PKJ 2005/1 Stefan Dissmann Vorwoche - Klasse public class Studierende { private String name, vorname, studiengang; private int matNr, semester; private.](https://reader034.fdocuments.net/reader034/viewer/2022042601/55204d6249795902118b6b48/html5/thumbnails/31.jpg)
PKJ 2005/31Stefan Dissmann
Lebensdauer von Objekten
Objekt wird durch Aufruf eines Konstruktors erzeugt!
Wann und wie wird ein Objekt vernichtet?Im Prinzip gar nicht; Objekte existieren immer weiter!
Aber Referenzen auf Objekte haben einen eingeschränkten Sichtbarkeitsbereich!
![Page 32: PKJ 2005/1 Stefan Dissmann Vorwoche - Klasse public class Studierende { private String name, vorname, studiengang; private int matNr, semester; private.](https://reader034.fdocuments.net/reader034/viewer/2022042601/55204d6249795902118b6b48/html5/thumbnails/32.jpg)
PKJ 2005/32Stefan Dissmann
Lebensdauer von Objekten
Objekt wird durch Aufruf eines Konstruktors erzeugt!
Wann und wie wird ein Objekt vernichtet?Im Prinzip gar nicht; Objekte existieren immer weiter!
Aber Referenzen auf Objekte haben einen eingeschränkten Sichtbarkeitsbereich!
Und wenn es keine Referenz mehr zu einem Objekt gibtist es nicht mehr erreichbar und so für das Programm verloren!
![Page 33: PKJ 2005/1 Stefan Dissmann Vorwoche - Klasse public class Studierende { private String name, vorname, studiengang; private int matNr, semester; private.](https://reader034.fdocuments.net/reader034/viewer/2022042601/55204d6249795902118b6b48/html5/thumbnails/33.jpg)
PKJ 2005/33Stefan Dissmann
Frohe Weihnachten und alles Gute für 2006