Hallo, ich schon wieder. Ich bin ja gerade am erlernen von JAVA. Bis gestern war mir noch eigentlich das meiste klar, doch heute bin ich ein bisschen ratlos. Ich habe eine Aufgabe die ich im Moment nicht lösen kann. Sie lautet:
Es soll eine Applikation erstellt werden, die aus den Klassen Adresse, Kunde,
AuslandsKunde und KundenStarter besteht. Die Klassen Adresse und
KundenStarter existieren bereits. Die Klassen Kunde und AuslandsKunde sollen
von Ihnen implementiert werden.
Erstellen Sie eine Klasse Kunde, an die folgende Anforderungen gestellt werden:
• Die Klasse hat die Instanzvariablen kundennummer vom Typ int, name und
anrede vom Typ String und adresse vom Typ Adresse. Alle Variablen sollen
von außen nur über Methoden der Klasse les- und änderbar sein. Die
Kundennummer soll nicht veränderbar sein.
• Eine Klassenvariable count vom Typ int soll die Anzahl der bereits erzeugten
Instanzen der Klasse Kunde zählen.
• Der Konstruktor initialisiert die Instanzvariablen bis auf kundennummer durch die
Werte seiner Argumente. (Achten Sie dabei darauf, dass die Reihenfolge der
Parameter zu den Konstruktoraufrufen in der Klasse KundenStarter passt.)
Der Wert von kundennummer wird durch den aktuellen Wert von count
festgelegt. Dadurch bekommt jeder Kunde eine eindeutige Kundennummer.
• Die Klasse soll über eine Methode print() verfügen, die den aktuellen Wert
aller Instanzvariablen ausgibt.
Erstellen Sie eine weitere Klasse AuslandsKunde, an die folgende Anforderungen
gestellt werden:
• Die Klasse AuslandsKunde erbt von der Klasse Kunde.
• Die Klasse AuslandsKunde besitzt eine zusätzliche Instanzvariable land vom
Typ String. Auch diese Variable soll sich nur über Methoden der Klasse lesen
und ändern lassen.
• Der Konstruktor initialisiert sowohl die Basisklasse Kunde als auch die
zusätzliche Instanzvariable. (Auch hier soll der Konstruktor wieder zu den
Konstruktoraufrufen in der Klasse KundenStarter passen.)
• Die Methode print() wird überschrieben, um zusätzlich den Wert von land
auszugeben.
Testen Sie die Applikation indem Sie alle Klassen übersetzen und die Klasse
KundenTester starten.
Hier sind die zwei Dateien KundenStarter und Adresse
Kann mir jemand dabei helfen, diese zwei Dateien zu erstellen? Ich habe bis jetzt folgendes gemacht:
So, damit müsste die Kundennummer immer um eines hoch gesetzt werden, oder?
Die Instanzvariablen, die einen unterschiedlichen Typ haben, wie kann ich die einbringen. Wenn ich schreibe
kommt ein Fehler.
Kann mir jemand erklären warum das so ist?
Es soll eine Applikation erstellt werden, die aus den Klassen Adresse, Kunde,
AuslandsKunde und KundenStarter besteht. Die Klassen Adresse und
KundenStarter existieren bereits. Die Klassen Kunde und AuslandsKunde sollen
von Ihnen implementiert werden.
Erstellen Sie eine Klasse Kunde, an die folgende Anforderungen gestellt werden:
• Die Klasse hat die Instanzvariablen kundennummer vom Typ int, name und
anrede vom Typ String und adresse vom Typ Adresse. Alle Variablen sollen
von außen nur über Methoden der Klasse les- und änderbar sein. Die
Kundennummer soll nicht veränderbar sein.
• Eine Klassenvariable count vom Typ int soll die Anzahl der bereits erzeugten
Instanzen der Klasse Kunde zählen.
• Der Konstruktor initialisiert die Instanzvariablen bis auf kundennummer durch die
Werte seiner Argumente. (Achten Sie dabei darauf, dass die Reihenfolge der
Parameter zu den Konstruktoraufrufen in der Klasse KundenStarter passt.)
Der Wert von kundennummer wird durch den aktuellen Wert von count
festgelegt. Dadurch bekommt jeder Kunde eine eindeutige Kundennummer.
• Die Klasse soll über eine Methode print() verfügen, die den aktuellen Wert
aller Instanzvariablen ausgibt.
Erstellen Sie eine weitere Klasse AuslandsKunde, an die folgende Anforderungen
gestellt werden:
• Die Klasse AuslandsKunde erbt von der Klasse Kunde.
• Die Klasse AuslandsKunde besitzt eine zusätzliche Instanzvariable land vom
Typ String. Auch diese Variable soll sich nur über Methoden der Klasse lesen
und ändern lassen.
• Der Konstruktor initialisiert sowohl die Basisklasse Kunde als auch die
zusätzliche Instanzvariable. (Auch hier soll der Konstruktor wieder zu den
Konstruktoraufrufen in der Klasse KundenStarter passen.)
• Die Methode print() wird überschrieben, um zusätzlich den Wert von land
auszugeben.
Testen Sie die Applikation indem Sie alle Klassen übersetzen und die Klasse
KundenTester starten.
Hier sind die zwei Dateien KundenStarter und Adresse
Code:
public class KundenStarter {
public void start() {
// Polymorphe Referenz
Kunde kunde;
Adresse adr1 = new Adresse("Musterstrasse", "12",
"88888", "Musterstadt");
Adresse adr2 = new Adresse("PennyLane", "1", "X1234", "London");
// kunde referenziert normalen Kunden
kunde = new Kunde("Huber", "Herr", adr1);
kunde.print(); // print() in Kunde
System.out.println();
// kunde referenziert nun einen AuslandKunden
kunde = new AuslandsKunde("Graves", "Mister", adr2, "England");
kunde.print(); // print() in AuslandKunde
}
public static void main(String[] args) {
KundenStarter app = new KundenStarter();
app.start();
}
}
Code:
public class Adresse {
// Instanzvariablen
private String strasse;
private String hausNr;
private String postleitzahl;
private String stadt;
// Konstruktor
public Adresse(String strasse, String hausNr,
String postleitzahl, String stadt) {
this.strasse = strasse;
this.hausNr = hausNr;
this.postleitzahl = postleitzahl;
this.stadt = stadt;
}
// Methoden
public String getStrasse() {
return strasse;
}
public String getHausNr() {
return hausNr;
}
public String getPostleitzahl() {
return postleitzahl;
}
public String getStadt() {
return stadt;
}
public void setStrasse(String s) {
strasse = s;
}
public void setHausNr(String s) {
hausNr = s;
}
public void setPostleitzahl(String s) {
postleitzahl = s;
}
public void setStadt(String s) {
stadt = s;
}
public void print() {
System.out.println("Strasse: " + strasse + " " + hausNr);
System.out.println("Stadt: " + postleitzahl + " " + stadt);
}
}
Code:
public class kunde {
//Klassenvariable
static int count = 0;
//Instanzvariable
private int kundennummer;
//Konstruktur für Anzahl der Instanzen
public kunde() {
count++;
kundennummer = count;
}
}
So, damit müsste die Kundennummer immer um eines hoch gesetzt werden, oder?
Die Instanzvariablen, die einen unterschiedlichen Typ haben, wie kann ich die einbringen. Wenn ich schreibe
Code:
privat int kundennummer;
privat string name;
kommt ein Fehler.
Kann mir jemand erklären warum das so ist?
Zuletzt bearbeitet: