CuP - Java Zwölfte Vorlesung Klassen – Komposition und Vererbung Freitag, 15. November 2002.

17
CuP - Java Zwölfte Vorlesung Klassen – Komposition und Vererbung Freitag, 15. November 2002

Transcript of CuP - Java Zwölfte Vorlesung Klassen – Komposition und Vererbung Freitag, 15. November 2002.

Page 1: CuP - Java Zwölfte Vorlesung Klassen – Komposition und Vererbung Freitag, 15. November 2002.

CuP - Java

Zwölfte VorlesungKlassen – Komposition und Vererbung

Freitag, 15. November 2002

Page 2: CuP - Java Zwölfte Vorlesung Klassen – Komposition und Vererbung Freitag, 15. November 2002.

15. November 2002

CuP WS 2002/2003 2

Die Klasse Name

Name hat: Zwei Attribute vom Typ String Drei Konstruktoren Zwei Zugangsmethoden Zwei Mutationsmethoden Eine Ausgabemethode

Page 3: CuP - Java Zwölfte Vorlesung Klassen – Komposition und Vererbung Freitag, 15. November 2002.

15. November 2002

CuP WS 2002/2003 3

Implementation der Klasse Name (1/3)

public class Name{

private String vorname;

private String nachname;

Name(){

}

Name(String vorname, String nachname){

this.vorname = vorname;

this.nachname = nachname;

}

Page 4: CuP - Java Zwölfte Vorlesung Klassen – Komposition und Vererbung Freitag, 15. November 2002.

15. November 2002

CuP WS 2002/2003 4

Implementation der Klasse Name (2/3)Name(String nachname){

this.nachname = nachname;}

String vorname(){return vorname;

}String nachname(){

return nachname;}

void setzeVorname(String vorname){this.vorname = vorname;

}

Page 5: CuP - Java Zwölfte Vorlesung Klassen – Komposition und Vererbung Freitag, 15. November 2002.

15. November 2002

CuP WS 2002/2003 5

Implementation der Klasse Name (3/3)void setzeNachname(String nachname){

this.nachname = nachname;

}

public String toString(){

String s = new String();

if (vorname != null) s = s + vorname + " ";

if(nachname != null) s = s + nachname;

return s;

}

}

Page 6: CuP - Java Zwölfte Vorlesung Klassen – Komposition und Vererbung Freitag, 15. November 2002.

15. November 2002

CuP WS 2002/2003 6

Die Klasse TesteNamepublic class TesteName{

public static void main(String[ ] args){Name jk = new Name("Johannes", "Kepler");Name ae = new Name("Einstein");System.out.println(jk.toString() + " entschluesselte das

Geheimnis der Planetenbahnen.");System.out.println("Sein Vorname ist " + jk.vorname() +

".");System.out.println(ae.toString() + " entwickelte die

allgemeine Relativitaetstheorie.");ae.setzeVorname("Albert");System.out.println(ae.toString()+".");

}}

Page 7: CuP - Java Zwölfte Vorlesung Klassen – Komposition und Vererbung Freitag, 15. November 2002.

15. November 2002

CuP WS 2002/2003 7

Anweisungsschema

Johannes

Kepler

vorname

nachname

jk

Einstein

vorname

nachname

ae

Name String

String

StringName

Page 8: CuP - Java Zwölfte Vorlesung Klassen – Komposition und Vererbung Freitag, 15. November 2002.

15. November 2002

CuP WS 2002/2003 8

Die Klasse Person (1/3)class Person{

protected Name name;

protected char geschlecht; // m oder w

protected String kennnummer; // z.B. Sozialversicherungsnummer

Person(Name name, char geschlecht){

this.name = name;

this.geschlecht = geschlecht;

}

Page 9: CuP - Java Zwölfte Vorlesung Klassen – Komposition und Vererbung Freitag, 15. November 2002.

15. November 2002

CuP WS 2002/2003 9

Die Klasse Person (2/3)

Name name(){

return name;

}

char geschlecht(){

return geschlecht;

}

String kennnummer(){

return kennnummer;

}

Page 10: CuP - Java Zwölfte Vorlesung Klassen – Komposition und Vererbung Freitag, 15. November 2002.

15. November 2002

CuP WS 2002/2003 10

Die Klasse Person (3/3)

void setzeKennnummer(String kennnummer){

this.kennnummer = kennnummer;

}

public String toString(){

String s = new String(name.toString() + " (Geschlecht: " + geschlecht +")");

return s;

}

}

Page 11: CuP - Java Zwölfte Vorlesung Klassen – Komposition und Vererbung Freitag, 15. November 2002.

15. November 2002

CuP WS 2002/2003 11

Die Klasse TestePerson

class TestePerson{

public static void main(String[] args){

Name bobsName = new Name("Robert", "Dylan");

Person bob = new Person(bobsName, 'm');

System.out.println(bob.toString());

}

}

Page 12: CuP - Java Zwölfte Vorlesung Klassen – Komposition und Vererbung Freitag, 15. November 2002.

15. November 2002

CuP WS 2002/2003 12

Die Klasse Mensch (1/5)class Mensch{

protected Name name;

protected char geschlecht; // m oder w

protected String kennnummer; // z.B. //Sozialversicherungsnummer

protected Mensch vater;

protected Mensch mutter;

Page 13: CuP - Java Zwölfte Vorlesung Klassen – Komposition und Vererbung Freitag, 15. November 2002.

15. November 2002

CuP WS 2002/2003 13

Die Klasse Mensch (2/5)

private static final String ZR = " ";

private static String tab = "";

Mensch(Name name, char geschlecht){

this.name = name;

this.geschlecht = geschlecht;

}

Page 14: CuP - Java Zwölfte Vorlesung Klassen – Komposition und Vererbung Freitag, 15. November 2002.

15. November 2002

CuP WS 2002/2003 14

Die Klasse Mensch (3/5)Name name(){

return name;

}

char geschlecht(){

return geschlecht;

}

String kennnummer(){

return kennnummer;

}

Page 15: CuP - Java Zwölfte Vorlesung Klassen – Komposition und Vererbung Freitag, 15. November 2002.

15. November 2002

CuP WS 2002/2003 15

Die Klasse Mensch (4/5)void setzeKennnummer(String kennnummer){

this.kennnummer = kennnummer;}

void setzteVater(Mensch vater){this.vater = vater;

}

void setzeMutter(Mensch mutter){this.mutter = mutter;

}

Page 16: CuP - Java Zwölfte Vorlesung Klassen – Komposition und Vererbung Freitag, 15. November 2002.

15. November 2002

CuP WS 2002/2003 16

Die Klasse Mensch (5/5)public String toString(){

String s = new String(name.toString() + " (Geschlecht: " + geschlecht +")");

s = s + "\n";

if(mutter != null){

tab = tab + ZR;

s = s + tab + "Mutter: " + mutter.toString();

}

return s;

}

}

Page 17: CuP - Java Zwölfte Vorlesung Klassen – Komposition und Vererbung Freitag, 15. November 2002.

15. November 2002

CuP WS 2002/2003 17

Die Klasse TesteMensch

class TesteMensch{

public static void main(String[] args){Mensch ww = new Mensch(new Name("William",

"Windsor"), 'm');Mensch cw = new Mensch(new Name("Charles",

"Windsor"), 'm');Mensch ew = new Mensch(new Name("Elisabeth ",

"Windsor"), 'w');cw.setzeMutter(ew);System.out.println(cw.toString());}

}