Hallo
ich habe mehrere Aufgaben gestellt bekommen und tappe an manchen Stellen echt im dunkeln:bahnhof: Vielleicht könnt ihr mir da ja weiterhelfen
Die erste Aufgabe lautet:
Software für Geldautomaten II
Erweitern Sie Ihre Geldautomaten-Software aus Übungsblatt 2, Aufgabe 2. Erstellen
Sie einen Konstruktor für die Klasse Konto, mit dem das Angeben des
Kundennamens bei Erstellung eines Konto-Objekt erzwungen wird. Legen Sie
innerhalb dieses Konstruktors auch die Kontonummer des neuen Kontos automatisiert
fest, indem eine Klassenvariable hochgezählt wird.
Schreiben Sie einen weiteren Konstruktor, der Ihren ersten Konstruktor aufruft
und zusätzlich das Festlegen eines Startguthabens zum Konto ermöglicht.
Eine neue Serie von Geldautomaten der Firma Nixcor Windorf AG soll auch
Cent-Beträge auszahlen können. Damit dies möglich wird, überladen Sie bitte
entsprechend die Methoden payIn(...) und payOut(...).
Im großen und ganzen ja kein Problem nur an einigen Stellen hängt es noch
Mein Code sieht wie folgt aus:
Das erste Problem was ich habe ist beim überladen des Konstruktors
Dort bekomme ich immer die Fehlermeldung :
cannot reference kundenname before supertype constructor has been called
Wenn ich nun aber ein super() davor schreibe bekomme ich die Fehlermeldung :
call to this must be first statement in constructor
Wisst ihr was ich falsch mache? Ich bin am verzweifeln
(
Das zweite Problem macht sich bei den überladenen Methoden von payIn und payOut breit.
ich verstehe einfach nicht wie das mit dem überladen funktionieren soll ???:L???:L
Die zweite Aufgabe wäre:
Büchersammlung
Sie möchten Ihre private Büchersammlung in Java modellieren. Schreiben Sie eine
Klasse Buch, welche bestimmte Eigenschaften wie z. B. ISBN, Titel, Autoren, Erscheinungsjahr,
Verlag und Zustand hat. Bilden Sie die Eigenschaften sinnvoll ab.
Beim Erzeugen eines neuen Buches soll mindestens ISBN, Titel und Autor gesetzt
werden. Sozusagen handelt es hierbei um Pflichtfelder. Alternativ können auch
alle Angaben getätigt werden. Entwerfen Sie entsprechende Konstruktoren.
Hinweis: Schreiben Sie getter- und setter-Methoden für alle Attribute.
Mein Code dafür sieht wie folgt aus:
Hier wäre meine Frage, wie stelle ich es an das ich Erscheinungsjahr, Verlag und Zustand nur optinal eingeben muss und nicht immer die Fehlermeldung: empty parameter field erhalte
Ich hoffe ihr könnt mir bei meinen Problemen weiterhelfen und bedanke mich schonmal im vorhinein
Mfg.
WusAA
ich habe mehrere Aufgaben gestellt bekommen und tappe an manchen Stellen echt im dunkeln:bahnhof: Vielleicht könnt ihr mir da ja weiterhelfen
Die erste Aufgabe lautet:
Software für Geldautomaten II
Erweitern Sie Ihre Geldautomaten-Software aus Übungsblatt 2, Aufgabe 2. Erstellen
Sie einen Konstruktor für die Klasse Konto, mit dem das Angeben des
Kundennamens bei Erstellung eines Konto-Objekt erzwungen wird. Legen Sie
innerhalb dieses Konstruktors auch die Kontonummer des neuen Kontos automatisiert
fest, indem eine Klassenvariable hochgezählt wird.
Schreiben Sie einen weiteren Konstruktor, der Ihren ersten Konstruktor aufruft
und zusätzlich das Festlegen eines Startguthabens zum Konto ermöglicht.
Eine neue Serie von Geldautomaten der Firma Nixcor Windorf AG soll auch
Cent-Beträge auszahlen können. Damit dies möglich wird, überladen Sie bitte
entsprechend die Methoden payIn(...) und payOut(...).
Im großen und ganzen ja kein Problem nur an einigen Stellen hängt es noch
Mein Code sieht wie folgt aus:
Java:
public class Konto
{
// Attribute
static int kontonummer =10000000;
private String kundenname;
private float kontostand;
// Kontruktoren
public Konto(float kontostand){
setKontostand(kontostand);
}
public Konto(String kundenname){
kontonummer = kontonummer + 1;
this.kundenname=kundenname;
}
// Setter
public void setKundenname(String name){
this.kundenname=name;
}
public void setKontostand(float kontostand){
this.kontostand=kontostand;
}
// Methoden
public void payIn(int amount) {
kontostand = kontostand + amount;
printBalance();
}
public void payOut (int amount) {
if ( kontostand - amount<0)
System.out.println("Kontostand zu gering, ihr Guthaben betraegt: " + kontostand);
else {
kontostand= kontostand - amount;
printBalance();
}
}
public void printBalance(){
System.out.println("Der Kontoinhaber ist "+kundenname);
System.out.println("Der Kontoihaber hat folgende Kontonummer: "+kontonummer);
System.out.println("aktueller Kontostand: "+kontostand);
}
// Überladene Methoden
public void payIn( int amount, float cent){
kontostand = kontostand + amount + cent;
printBalance();
}
}
Das erste Problem was ich habe ist beim überladen des Konstruktors
Java:
public class Konto
{
// Attribute
static int kontonummer =10000000;
private String kundenname;
private float kontostand;
// Kontruktoren
public Konto(float kontostand){
this(kundenname);
setKontostand(kontostand);
}
public Konto(String kundenname){
kontonummer = kontonummer + 1;
this.kundenname=kundenname;
}
Dort bekomme ich immer die Fehlermeldung :
cannot reference kundenname before supertype constructor has been called
Wenn ich nun aber ein super() davor schreibe bekomme ich die Fehlermeldung :
call to this must be first statement in constructor
Wisst ihr was ich falsch mache? Ich bin am verzweifeln
Das zweite Problem macht sich bei den überladenen Methoden von payIn und payOut breit.
ich verstehe einfach nicht wie das mit dem überladen funktionieren soll ???:L???:L
Die zweite Aufgabe wäre:
Büchersammlung
Sie möchten Ihre private Büchersammlung in Java modellieren. Schreiben Sie eine
Klasse Buch, welche bestimmte Eigenschaften wie z. B. ISBN, Titel, Autoren, Erscheinungsjahr,
Verlag und Zustand hat. Bilden Sie die Eigenschaften sinnvoll ab.
Beim Erzeugen eines neuen Buches soll mindestens ISBN, Titel und Autor gesetzt
werden. Sozusagen handelt es hierbei um Pflichtfelder. Alternativ können auch
alle Angaben getätigt werden. Entwerfen Sie entsprechende Konstruktoren.
Hinweis: Schreiben Sie getter- und setter-Methoden für alle Attribute.
Mein Code dafür sieht wie folgt aus:
Java:
public class Buch
{
private int isbn;
private String titel;
private String autoren;
private int erscheinungsjahr;
private String verlag;
private String zustand;
//konstruktor
public Buch(int isbn, String titel, String autoren,int erscheinungsjahr, String verlag , String zustand){
setIsbn(isbn);
setTitel(titel);
setAutoren(autoren);
setErscheinungsjahr(erscheinungsjahr);
setVerlag(verlag);
setZustand(zustand);
System.out.println("Die ISBN Nummer des Buches lautet: "+isbn);
System.out.println();
System.out.println("Der Titel des Buchs lautet: "+titel);
System.out.println();
System.out.println("Der Autor die Autoren des Buches sind: "+autoren);
System.out.println();
System.out.println("Das Erscheinungsjahr des Buches ist: "+erscheinungsjahr);
System.out.println();
System.out.println("Der Verlag ist "+verlag);
System.out.println();
System.out.println("Der Zustand des Buches ist "+zustand);
}
// Getter und Setter Methoden
public int getIsbn(){
return isbn;
}
public void setIsbn( int isbn){
this.isbn=isbn;
}
public String getTitel(){
return titel;
}
public void setTitel(String neuertitel){
this.titel=neuertitel;
}
public String getAutoren(){
return autoren;
}
public void setAutoren(String Autoren){
this.autoren=autoren;
}
public int getErscheinungsjahr(){
return erscheinungsjahr;
}
public void setErscheinungsjahr(int erscheinungsjahr){
this.erscheinungsjahr=erscheinungsjahr;
}
public String getVerlag(){
return verlag;
}
public void setVerlag(String verlag){
this.verlag=verlag;
}
public String getZustand(){
return zustand;
}
public void setZustand(String zustand) {
this.zustand=zustand;
}
}
Hier wäre meine Frage, wie stelle ich es an das ich Erscheinungsjahr, Verlag und Zustand nur optinal eingeben muss und nicht immer die Fehlermeldung: empty parameter field erhalte
Ich hoffe ihr könnt mir bei meinen Problemen weiterhelfen und bedanke mich schonmal im vorhinein
Mfg.
WusAA
Zuletzt bearbeitet von einem Moderator: