Verebung Aufgabenstellung

Neue Frage »

Auf diesen Beitrag antworten »
neuling96 Verebung Aufgabenstellung

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
public class StudentenInfo {
public static void main(String[] args) {
Student a = new Student("Peter", "Parker", new Datum(15, 8, 1962),
"parkerp");
Student b = new Student("Mary Jane", "Watson", new Datum(4, 11, 1966),
"watsonma");
System.out.println("Name: " + a.nachname + ", " + a.vorname);
System.out.println("Kennung: " + a.kennung);
System.out.println("Geboren am: " + a.geburtsdatum.tag + "."
+ a.geburtsdatum.monat + "." + a.geburtsdatum.jahr);
System.out.println("Name: " + b.nachname + ", " + b.vorname);
System.out.println("Kennung: " + b.kennung);
System.out.println("Geboren am: " + b.geburtsdatum.tag + "."
+ b.geburtsdatum.monat + "." + b.geburtsdatum.jahr);
}
}



a)Lassen Sie die Klasse StudentenInfo unver¨andert und definieren Sie dazu passende Klassen Student
und Datum. F¨ur diese Klassen brauchen Sie keine Methoden zu definieren.

meine lösung
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
public class Student {

private String vorname;

private String nachname;

private Datum geburtsdatum;

private String kennung;

public Student(String vorname, String nachname, Datum gebDatum,
String kennung) {
this.vorname = vorname;
this.nachname = nachname;
this.geburtsdatum = gebDatum;
this.kennung = kennung;
}
}

public class Datum {

private int tag;

private int monat;


private int jahr;

public Datum(int tag, int monat, int jahr) {
this.tag = tag;
this.monat = monat;
this.jahr = jahr;
}
}




nun folgt die aufgabe b)
Erkl¨aren Sie, warum die Klassen Student und Datum nicht gutem objektorientiertem Programmierstil
entsprechen. Wie k¨onnte man dies verbessern?

Was meint man damit?
 
Auf diesen Beitrag antworten »
eulerscheZahl

Zu a)
auf die Werte wird zugegriffen über
code:
1:
System.out.println("Name: " + a.nachname + ", " + a.vorname);

folglich müssen die Felder public sein. Damit haben wir auch schon einen Teil der Lösung für b): die Felder sind nicht private. Ferner wäre es besser, die Ausgabe würde über eine toString() Methode stattfinden.
Auf diesen Beitrag antworten »
neuling96

danke, habs gar nicht bemerkt

a.nachname greift direkt aufs Attribute usw kann ja nur gehen wenn public
 
Neue Frage »
Antworten »


Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »