2. Übungsblatt - Abgabe: 28. November
Re: 2. Übungsblatt - Abgabe: 28. November
Der Konstruktor gibt bereits das Objekt zurück, also eher nein!
mfG
Markus
Edit: Da der Konstruktor keinen Typ hat, kann er auch nichts returnen.
Ferner war nicht gefordert, dass du die Überweisung gegen Überziehen absicherst.
Und == ist ein Vergleichsoperator, keine Zuweisung (im übrigen ist die Zuweisung Kontostand = Kontostand auch sinnlos.)
Und ich weiß nicht, welche Währung du verwendest, aber in Europa gibt es neben Euros auch noch Cents, du benötigst also Kommazahlen.
mfG
Markus
Edit: Da der Konstruktor keinen Typ hat, kann er auch nichts returnen.
Ferner war nicht gefordert, dass du die Überweisung gegen Überziehen absicherst.
Und == ist ein Vergleichsoperator, keine Zuweisung (im übrigen ist die Zuweisung Kontostand = Kontostand auch sinnlos.)
Und ich weiß nicht, welche Währung du verwendest, aber in Europa gibt es neben Euros auch noch Cents, du benötigst also Kommazahlen.
Re: 2. Übungsblatt - Abgabe: 28. November
so ?
Code: Alles auswählen
public class Account {
//Attribute
String kontoinhaber;
int kontostand;
//Konstruktormethode
public Account ( String kontoinhaber , int kontostand ) {
this.kontoinhaber = kontoinhaber;
this.kontostand = kontostand;
}
int finstatus (int kontostand) {
return (kontostand);
}
public void einzahlung ( int betrag ) {
kontostand += betrag;
}
public void ueberweisung ( int betrag ) {
if (kontostand >= betrag) {
kontostand -= betrag;
}
if (kontostand <= betrag) {
kontostand == kontostand;
}
}
}
-
- Beiträge: 9
- Registriert: So 9. Nov 2008, 12:29
Re: 2. Übungsblatt - Abgabe: 28. November
hab nochmal nachgeguckt! die konstruktormethode ist per default "void", gibt also keinen wert zurück!
@dit: bei deiner überweisungsmethode stimmt auch was nicht. ich würde
schreiben! außerdem ist
ein vergleich! aber kontostand = kontostand kannst du dir auch sparen!
edit: zu langsam
@dit: bei deiner überweisungsmethode stimmt auch was nicht. ich würde
Code: Alles auswählen
if (condition) {
}
else{
}
Code: Alles auswählen
kontostand == kontostand
edit: zu langsam
Re: 2. Übungsblatt - Abgabe: 28. November
Muss ich überhaupt die Fallunterscheidung machen?
Code: Alles auswählen
public class Account {
//Attribute
String kontoinhaber;
double kontostand;
//Konstruktormethode
public Account ( String kontoinhaber , double kontostand ) {
this.kontoinhaber = kontoinhaber;
this.kontostand = kontostand;
}
double finstatus (double kontostand) {
return (kontostand);
}
public void einzahlung ( double betrag ) {
kontostand += betrag;
}
public void ueberweisung ( double betrag ) {
if (kontostand >= betrag) { kontostand -= betrag; }
else if (kontostand <= betrag) { kontostand -= 0.0; }
}
}
Re: 2. Übungsblatt - Abgabe: 28. November
mfGmarkusj hat geschrieben:Ferner war nicht gefordert, dass du die Überweisung gegen Überziehen absicherst.
Markus
-
- Beiträge: 9
- Registriert: So 9. Nov 2008, 12:29
Re: 2. Übungsblatt - Abgabe: 28. November
also falsch ist diese fallunterscheidung sicher nicht. Du hast sie geschrieben, also lass sie drin!
so ist es richtig! du kannst theoretisch auch 2x if verwenden, dann darf aber nur einmal das = mit einbezogen sein also entweder <= und > oder >= und <.
else ist hier imo aber besser!
wie du die klammern anordnest ist mehr oder weniger egal. Was stilistisch richtig ist weiß ich nicht. von Firmen wird das intern geregelt!
Code: Alles auswählen
public void ueberweisung ( double betrag ) {
if (kontostand >= betrag) { kontostand -= betrag; }
else {
kontostand -= 0.0; }
}
else ist hier imo aber besser!
wie du die klammern anordnest ist mehr oder weniger egal. Was stilistisch richtig ist weiß ich nicht. von Firmen wird das intern geregelt!
Re: 2. Übungsblatt - Abgabe: 28. November
Er hat gefragt, ob er fallunterscheiden muss, die Antwort ist Nein!Scotty_doesn't_know hat geschrieben:also falsch ist diese fallunterscheidung sicher nicht. Du hast sie geschrieben, also lass sie drin!
...
wie du die klammern anordnest ist mehr oder weniger egal. Was stilistisch richtig ist weiß ich nicht. von Firmen wird das intern geregelt!
Und zu den Klammern: Für uns gelten die Java Code Conventions, an die wir uns zu halten haben. Später wird der Praktomat dafür auch Punkte geben/abziehen!
mfG
Markus
Re: 2. Übungsblatt - Abgabe: 28. November
Wenn ihr das Geld nur abbucht, wenn genug auf dem Konto ist, dann passt in der Transfer-Klasse auf, dass dem Empfänger das Geld auch nur gutgeschrieben wird, wenn es dem anderen auch abgebucht wurde.
Ich hab es einfach so gemacht, dass die Konten überzogen werden können. Ist am einfachsten und nicht gegen die Vorgabe. Ich vermute, dass es sogar so gewollt ist. Wenn man es anders macht ist es natürlich trotzdem nicht falsch.
PS: Tipp fürs Leben: Macht einfach genug Schulden, irgendwann ist man wieder im positiven Bereich.
Ich hab es einfach so gemacht, dass die Konten überzogen werden können. Ist am einfachsten und nicht gegen die Vorgabe. Ich vermute, dass es sogar so gewollt ist. Wenn man es anders macht ist es natürlich trotzdem nicht falsch.
PS: Tipp fürs Leben: Macht einfach genug Schulden, irgendwann ist man wieder im positiven Bereich.
Re: 2. Übungsblatt - Abgabe: 28. November
vlt. noch ein paar kleinere Tipps:
- versucht ausdrucksstärkere Namen für eure Methoden zu finden (immer auch an größere Projekte denken, der Code soll möglichst schnell nachvollziehbar sein)
wie zum Beispiel für den Kontostand getKontoStand(), oder für das Kontobewegungen geldEinzahlen() bzw. geldAbheben(); Es kann muss ja schließlich nicht auschließlich geld durch Überweisungen aufs Konto... - Vorhin gabs glaub Probleme mit 1/3 oder so. Der Ursprung dieses Problems liegt hier im sogenannten Type Casting
Beispiel:Der Javacompiler geht dabei so vor:Code: Alles auswählen
double a,b,c; a=b=c=0.5; double d = 1/3*(a+b+c); //ergebnis: 0 double e = 1.0/3*(a+b+c); //ergebnis: 0.5
Er fängt vorne an zu lesen und erkennt das 1 ein Integer ist. Danach versucht er aus den ganzen Teilen der Rechnung (1/3, a+b+c) Integer zu Casten. (0.5 rundet er ab wird zu 0, 1/3 wird auch abgerundet und wird zu 0) Dadurch entstehen Fehler.
Deswegen muss man ihm explizit sagen was er machen soll. Dafür gibt es zwei Möglichkeiten: Die erste Zahl , hier 1, als "Fließkommazahl" zu schreiben, also 1.0 oder ihm sagen was rauskommen/ mit was er rechnen soll. Das geht mit dem Cast:Code: Alles auswählen
double e = (double) 1/3*(a+b+c); //ergebnis: 0.5
The main rules of optimization
Rule 1: Don't do it.
Rule 2: (For experts only) Don't do it yet.
Rule 1: Don't do it.
Rule 2: (For experts only) Don't do it yet.
Re: 2. Übungsblatt - Abgabe: 28. November
es gibt doch dispo-kreditsalami hat geschrieben:Wenn ihr das Geld nur abbucht, wenn genug auf dem Konto ist, dann passt in der Transfer-Klasse auf, dass dem Empfänger das Geld auch nur gutgeschrieben wird, wenn es dem anderen auch abgebucht wurde.
Ich hab es einfach so gemacht, dass die Konten überzogen werden können. Ist am einfachsten und nicht gegen die Vorgabe. Ich vermute, dass es sogar so gewollt ist. Wenn man es anders macht ist es natürlich trotzdem nicht falsch.
PS: Tipp fürs Leben: Macht einfach genug Schulden, irgendwann ist man wieder im positiven Bereich.