Will eure meinung Wissen

Status
Nicht offen für weitere Antworten.

Nao88

Bekanntes Mitglied
Will eure Meinung Wissen
und gibt es Verbesserungsmaßnahmen?
wäre nett


Code:
class Zinsen {
	double g ; // Grundbetrag
	double z ; //Zinssatz
	double l ; // Laufzeit 
	double k ; // zinsen in Euro 
	double x ; // Zinssatz  in 0,00
	double y ; // laufvariable0
	double b ;
	
	double x (){                // Berechnung Zinssatz  in 0,00
	 return x=z/100 ;
	}
	
	public double zinsen(){
		y=0;
		b=1;
		for(double i=0;i<l;i++){
			y=y+b;
			k=g*x;
			g=g+k;
			System.out.println ();
			System.out.println ("Das Konto leuft "+y+" Jahre");
			System.out.println ("Die Zinsen belaufen ich auf"+k+"€");
			System.out.println ("Der Grundbetrag beträgt"+g+"€");	
		}
		return g;
	}
	
	
	//konsavtruktor
	Zinsen (double grundbetrag,double laufzeit,double zinssatz){
		g=grundbetrag;
		z=zinssatz;
		l=laufzeit;
        }
}

public class Zinseszins {
	public static void main(String[] args) {
		Zinsen	r1=new Zinsen (100.,3.,10.);)
		double f1,d2 ;
		d2=r1.x ();
		f1= r1.zinsen ();	
	}
}
:meld:
 

Ark

Top Contributor
k, x, y und b werden nicht zum Speichern des aktuellen Objektzustands, sondern allein zum Arbeiten genutzt und sollten deshalb unbedingt lokale Variablen genau dort werden, wo sie gebraucht werden.

Die Methode, die irgendwelche Berechnungen anstellt und zum Schluss ein double zurückgibt, sollte das und nur das tun! Anweisungen wie System.out.println() haben da überhaupt nichts verloren!

Das Ganze sieht mehr nach prozeduraler statt nach objektorientierter Herangehensweise aus.

UND METHODEN WIE DIESE double x() UNTERLÄSST DU BITTE UNTER ALLEN UMSTÄNDEN!

zinsen() berechnet nicht, wie man annehmen würde, die Zinsen, sondern eher den Kontostand nach der angegebenen Laufzeit. Das verwirrt.

Außerdem bin ich mal gespannt, was rauskommen soll, wenn man nur 1,5 Jahre Laufzeit eingibt.

Die Variablen d2 und f1 in main() sind ja mal komplett sinnlos. Und nachdem die Rückgabewerte der Methoden nicht gebraucht werden, sind auch diese sinnlos.

Ark
 

Ark

Top Contributor
Nao88 hat gesagt.:
nichts :oops: besser nur 1 Jahr hab ich jetzt in int umgewandelt
Das formulierst du besser noch mal in ordentlichem und lesbarem Deutsch.

Nao88 hat gesagt.:
METHODEN WIE DIESE double x() UNTERLÄSST DU BITTE UNTER ALLEN UMSTÄNDEN!

Warum ?
1. Der Bezeichner x() ist mal komplett nichtssagend.
2. Die Methode funktioniert (in deinem Fall) wie eine Konstante, ändert aber etwas (hat also Nebenwirkungen). Es ist, als würde eine Uhr ganz normal laufen, aber in dem Augenblick, in dem man die Uhrzeit ablesen will, stellt sie sich automatisch auf Punkt 7 um.
3. Der Benutzer des Zinsen-Objektes muss x() aufrufen, damit es korrekt funktioniert. Das hat mit OO überhaupt nichts mehr zu tun. Eine Idee bei OO ist, dass das Objekt auf sich selbst aufpassen und sich selbst verwalten kann.
4. Die Variablen x und z sind direkt voneinander abhängig (man kann immer von x auf z schließen und anders herum). Das ist sehr schlecht. Eliminiere eine der beiden Variablen (und dann wird sich x() auch in Luft auflösen ;) ). Tipp: Spezifiziere den Konstruktor so, dass er den Zinssatz mit der Einheit 1 verlangt (also dass man 0.04 eingeben muss, wenn man 4% haben will usw.).

Ark
 

hdi

Top Contributor
der war gut^^ icon_wink.gif applaus.gif Ark sei Dank dass es derart geduldige Menschen wie Ark gibt^^ icon_biggrin.gif

Das hier hast du doch gelesen Andrey ?!

...der OT hat ganz normal nachgefragt, ob man das besser machen kann. Dein Kommentar ist einfach sch***, weil du damit sagst dass der OT Glück hatte auf eine normale Frage hier eine ausführliche Antwort zu bekommen.
Sonst hätte er also nur arrogante und unnützige Antworten erhalten, wie die von dir.
Also sorry, aber ihr müsst doch begreifen dass euch keiner anbetet nur weil ihr hier helft. Es ist ein gottverdammtes
Hilfe-Forum, das wird erwartet! Und solche Posts wie der von dir Andrey führen dazu, dass genau solche Threads wie der im Link enstehen (zu Recht!)

edit: Falls das jetz arg böse rüberkommt, so ist das gar nicht gemeint. Also keinesfalls hab ich was gegen dich Andrey! Aber ich mein nur, weil die Diskussion halt grad aktuell ist..
 

0x7F800000

Top Contributor
ist gut ist gut, Kritik akzeptiert, ich hab's ja auch nicht zu böß gemeint^^ :oops:
der OT war ja diesmal auch recht vorbildlich, hat (fast alle ;) ) bezeichner kommentiert, und die Frage an sich war eigentlich auch gut gestellt usw, alles cool, echt :toll:

Aber die Liste aus 8 verschiedenen 1-buchstabigen Bezeichnern nach einer sorum gestellten Frage fand ich schon ziemlich lustig, denn die Frage
und gibt es Verbesserungsmaßnahmen?
führt zwar zur selben Antwort wie
welche Verbesserungsmaßnahmen gibt es?
dennoch würde die zweite Variante nicht mal halb so seltsam klingen.

Jaja, also, sorry, ich bin halt ein verblödetes arrogantes arschloch, was soll ma da machn^^ :oops: ;)
 

Nao88

Bekanntes Mitglied
wird geändert und gemerkt und werde sie best möglich umsetzen :noe:
danke für eure Kommentare und Zurechtweisungen :toll: ( auch an Andrey )
nur noch eine frage was ist ein OT ???:L

Grezz Nao88
 

Ebenius

Top Contributor
Kenne ich auch nicht. Andrey konnte sich nicht entscheiden, ob er TO (Thread-Opener) oder OP (Original-Poster) schreiben soll. :-D
 

hdi

Top Contributor
Also erstmal muss ich zu Andrey's Verteidigung sagen, dass ICH das gesagt hab und nicht er ;)
Zum zweiten habe ich OT geschrieben weil ich meinte mal eine zwei-buchstabige Abkürzung für
den Thread-Ersteller gelesen zu haben. Denkt nicht, ich hätte mir beim Schreiben mehr gedacht als:

Ooo... Teee... :bae: Das kommt dabei raus wenn man zuviel programmiert: Ein wort ist eine Kette
von Zeichen und das war's
 

Ebenius

Top Contributor
Andrey hat gesagt.:
der OT war ja diesmal auch recht vorbildlich, hat (fast alle ;) ) bezeichner kommentiert, und die Frage an sich war eigentlich auch gut gestellt usw, alles cool, echt :toll:

Und der OffTopic kann ganz schön viele Dinge... Muss ich sagen. :)
 

ARadauer

Top Contributor
hab mir jetzt die beiträge nicht durchgelesen, aber auf den ersten blick: methoden sollen etwas machen... getGrundbetrag
berechneZinsen

x() is sehr schlimm!

double y ; // laufvariable0
eine laufvariable sollte nicht als klassenvariable definiert werden...
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben