• Keine Ergebnisse gefunden

Aufruf von Methoden / public und private

N/A
N/A
Protected

Academic year: 2022

Aktie "Aufruf von Methoden / public und private"

Copied!
5
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

___________________________________________________________________________

Aufruf von Methoden / public und private

Wenn Rechenoperationen einer Klasse wiederholt vorkommen, bietet es sich an, eine neue Methode zu programmieren und diese dann an den entsprechenden Stellen aufzurufen.

Wird diese Methode nur innerhalb der Klasse verwendet, sollte diese auch anstatt public als private definiert werden.

Beispiel:

In unserem Beispiel gibt es vier Methoden, die Sparpläne ausdrucken.

Diese Anweisungen sind für alle Sparpläne gleich:

zinsenNeu= rundenEuro(anfangsbetrag*zinssatz);

endbetrag= rundenEuro(anfangsbetrag+zinsenNeu);

System.out.println(jahr + " "+ anfangsbetrag + " " + zinsenNeu + " " + endbetrag);

Daher bietet es sich an, dafür eine Methode zu programmieren und diese Methode dann aufzurufen.

Aufgaben

1. Erstelle nun die Klasse anlage (s. Anlage)

2. Erstelle nun die Methode sparplanZeileErstellen(Import: anfangsbetrag, jahr);

(Rückgabewert: Endbetrag)

3. Ersetze nun den Programmcode durch den Methodenaufruf (bei Sparplanerstellen1) 4. Probiere nun mal aus, worin der Unterschied liegt, ob eine Methode als public oder private

definiert worden ist, indem du beides ausprobierst.

5. Ersetze nun bei allen vier Methoden die Programmzeilen durch den Methodenaufruf.

6. Wodurch muss die Methoden ergänzt werden, dass sie auch noch eine regelmäßige Sparrate berücksichtigt?

(2)

___________________________________________________________________________

/**

* Beschreiben Sie hier die Klasse Anlage.

*

* @author (K. Fröhlig) * @version (2021) */

public class anlage {

// Instanzvariablen - ersetzen Sie das folgende Beispiel mit Ihren Variablen double betrag;

double zinssatz;

int jahr;

/**

* Konstruktor für Objekte der Klasse Kapital */

public anlage(double inpBetrag, double inpZinssatz, int inpJahr) {

// Instanzvariable initialisieren betrag = inpBetrag;

zinssatz = inpZinssatz;

jahr = inpJahr;

}

public double ZinsenBerechnen() {

// Zinsen für ein Jahr berechnen double zinsen;

zinsen = betrag * zinssatz;

return zinsen ; }

public void sparplanErstellen(double zielbetrag) {

// Leerzeile und Überschrift drucken ....

System.out.println();

System.out.println("Jahr Anfangsbetrag Zinsen Endbetrag");

// lokale Variablen deklarieren und initialisieren ...

double zinsenNeu, betragNeu, endbetrag,anfangsbetrag;

anfangsbetrag = betrag;

int jahrNeu = jahr;

// Zinsen und Endbetrag für das erste Jahr berechnen zinsenNeu= anfangsbetrag*zinssatz;

endbetrag= anfangsbetrag+zinsenNeu;

//Erstes Jahr unabhängig davon ob der Endbetrag erreicht ist ...

System.out.println(jahrNeu + " "+ anfangsbetrag + " " + zinsenNeu + " " + endbetrag);

//Solange bis Zielbetrag erreicht while (endbetrag < zielbetrag) {jahrNeu =jahrNeu + 1;

anfangsbetrag = endbetrag;

zinsenNeu= rundenEuro(anfangsbetrag*zinssatz);

(3)

___________________________________________________________________________

endbetrag= rundenEuro(anfangsbetrag+zinsenNeu);

System.out.println(jahrNeu + " "+ anfangsbetrag + " " + zinsenNeu + " " + endbetrag);

} }

public void sparplanErstellen4(int anzahlJahre, double sparRate) { //lokale Variablen definieren

double zinsenNeu, betragNeu, endbetrag,anfangsbetrag;

anfangsbetrag = betrag ; int jahr = 1;

// Erste Zeile

System.out.println();

System.out.println("Jahr Anfangsbetrag Zinsen Endbetrag");

// Erste Zeile des Sparplans wird auf jeden Fall gezeigt ....

do {

anfangsbetrag= anfangsbetrag + sparRate;

zinsenNeu= rundenEuro(anfangsbetrag*zinssatz);

endbetrag= rundenEuro(anfangsbetrag+zinsenNeu);

System.out.println(jahr + " "+ anfangsbetrag + " " + zinsenNeu + " " + endbetrag);

jahr =jahr + 1;

anfangsbetrag = endbetrag;

} while (jahr < anzahlJahre) ;

System.out.println("Nach "+anzahlJahre +" Jahren haben Sie bei einer Sparrate von "+sparRate+" "

+rundenEuro(endbetrag) + " Euro angespart.");

}

public void sparplanErstellen3(int anzahlJahre) { //lokale Variablen definieren

double zinsenNeu, betragNeu, endbetrag,anfangsbetrag;

anfangsbetrag = betrag;

int jahr = 1;

// Erste Zeile

System.out.println();

System.out.println("Jahr Anfangsbetrag Zinsen Endbetrag");

// Erste Zeile des Sparplans wird auf jeden Fall gezeigt ....

do {

zinsenNeu= rundenEuro(anfangsbetrag*zinssatz);

endbetrag= rundenEuro(anfangsbetrag+zinsenNeu);

System.out.println(jahr + " "+ anfangsbetrag + " " + zinsenNeu + " " + endbetrag);

jahr =jahr + 1;

anfangsbetrag = endbetrag;

} while (jahr < anzahlJahre) ;

(4)

___________________________________________________________________________

System.out.println("Nach "+anzahlJahre +" Jahren haben Sie "+rundenEuro(endbetrag) + " Euro angespart.");

}

public void sparplanErstellen2(double zielbetrag) { //lokale Variablen definieren

double zinsenNeu, betragNeu, endbetrag,anfangsbetrag;

anfangsbetrag = betrag;

int jahrNeu = jahr;

// Erste Zeile

System.out.println();

System.out.println("Jahr Anfangsbetrag Zinsen Endbetrag");

// Erste Zeile des Sparplans wird auf jeden Fall gezeigt ....

do {

zinsenNeu= anfangsbetrag*zinssatz;

endbetrag= anfangsbetrag+zinsenNeu;

zinsenNeu= rundenEuro(anfangsbetrag*zinssatz);

endbetrag= rundenEuro(anfangsbetrag+zinsenNeu);

System.out.println(jahrNeu + " "+ anfangsbetrag + " " + zinsenNeu + " " + endbetrag);

jahrNeu =jahrNeu + 1;

anfangsbetrag = endbetrag;

} while (endbetrag < zielbetrag) ;

System.out.println("Nach "+(jahrNeu-jahr-1) +" Jahren haben Sie Ihr Sparziel um

"+rundenEuro(endbetrag-zielbetrag) + " Euro übertroffen.");

}

public static double rundenEuro(double betrag) { //Runden - angepasst auf zwei Nachkommastellen double d = Math.pow(10, 2);

return Math.round(betrag * d) / d;

}

public static double runden(double value, int nachkommastellen) {//Runden -gefunden im Internet

double d = Math.pow(10, nachkommastellen);

return Math.round(value * d) / d;

}

public double endkapitalBerechnen(int anzJahre) { // Endkapital nach n Jahren durch Zinsen // math.pow (x,y) berechnet x hoch y.

double endKapital;

endKapital = betrag * Math.pow((1 + zinssatz),anzJahre);

return rundenEuro(endKapital) ; }

public double endkapitalBerechnen(int anzJahre, double sparRate) { // Endkapital nach n Jahren mit Sparrate

// math.pow (x,y) berechnet x hoch y.

double endKapital;

(5)

___________________________________________________________________________

endKapital = betrag * Math.pow((1 + zinssatz),anzJahre) + sparRate * (Math.pow((1 + zinssatz),anzJahre)-1)/zinssatz;

return rundenEuro(endKapital) ; }}

Referenzen

ÄHNLICHE DOKUMENTE

Oxfam estimated annual (unweighted) averages of corporate income taxes (CIT), wealth taxes (including property, inheritance, net wealth, and financial and property transaction

Deutsch-Russische Tagung „Public Private Partnership im kommunalen Bereich: Rechtliche Voraussetzungen der Einbindung Privater in die Erfüllung öffentlicher

Dies entspricht auch der generellen Logik der Leasing- erlasse und der Rechtsprechung des BGH, da dort das wirtschaftliche Eigentum zunächst beim rechtlichen Eigentümer vermutet

Die Definition deutet an, daß die Projektentwicklung als eine komplexe Perspektive zu verstehen ist, die über einzelne Vorstellungen bezüglich Nutzungskonzept, Architektur,

Women, on the other hand, have been seen to take care of the household (domus) and were therefore more likely to be in the private sphere 6. According to this understanding,

Remark 4 In the presence of a monopoly with threat of market entry, if the incumbent is a public company and the potential entrant a private company, then the

Utilizarea mecanismelor propuse de knowledge management în proiectele de parteneriat public- privat poate conduce la identificarea de soluţii neaşteptate pentru

However,  most  of  these  papers use  surveys or cases (surveys  are  in  Prasad  and  Babbar  (2000)  and  Prasad,  et  al.  (2001),  rather  than