2016-09-19 53 views
-6
public class SavingsAccount { 
public static int annualInterestRate = 0; 
private double savingsBalance = 0; 

public double calculateMonthlyInterest(){ 
    return (savingsBalance * annualInterestRate)/12; 
} 

} 

Dies ist, was ich derzeit habe. Ich habe jeden Teil gemacht, der benötigt wurde, außer dem eingestellten Wert. Ich brauche eine statische Methode, um den Wert von annualInterestRate auf etwas anderes zu setzen. Wie Sie wissen, sollte eine Variable in der statischen Methode auch statisch sein. Deshalb ist annualInterestRate statisch. Mein Problem ist, dass ich nicht weiß, wie man eine Methode erstellt und nicht hart programmiert. Ich brauche eine Methode, die in einer anderen Klasse getestet werden kann. Sollte ich set und get Methoden verwenden, um auszuführen, was ich will?Wie ändert man den Wert einer Variablen?

+3

Wissen Sie, was 'static' bedeutet oder warum Sie es überall fügen? Und für "Setter-Methode Java" googeln wäre hilfreich. – Tom

+3

Tipp: 'modifyInterestRate (int n)' – OldCurmudgeon

+1

Wenn dies eine Schulaufgabe ist, schlage ich vor, dass Sie sich etwas Zeit nehmen, um zu experimentieren und selbst zu sehen, was passiert. Sie können eine Variable in Java neu zuweisen, indem Sie VARIABLE = VALUE verwenden. Drucken Sie eine Variable von System.out.println (VARIABLE) – Gikkman

Antwort

-2

i n erraten ist nicht definiert

private static void modifyInterestRate(int n){ //=> parameters you missing here 
     this.annualInterestRate = n; 
    } 
+0

@OldCurmudgeon Danke für das Aufzeigen – Roushan45

+0

Es ist schon eine schlechte Idee, eine Lösung für offensichtliche Hausaufgabenfragen zu geben (geben Sie stattdessen Hinweise, lassen Sie OP aus diesen Hinweisen lernen, um seine Hausaufgaben zu lösen), aber es sollte zumindest kompilierbar sein. – Tom

+1

dies im statischen Kontext – degr

0

Die Methode Methode für den Zugriff auf die Membervariable müssen als öffentlich erklären, und Membervariable sollte privat sein, so dass es nur von der Zugriffsmethode geändert werden kann.

0

Ein static Feld wäre eine globale Variable, die an die Klasse gebunden ist. Einmal vorkommend. Also machen Sie die Felder nicht statisch und das Feld wird Teil jedes SavingsAccount-Objekts, der this.

public class SavingsAccount { 

    public int annualInterestRate = 0; 

    public double savingsBalance = 0; 

    public void calculateMonthlyInterest() { 
     double y = (savingsBalance*annualInterestRate)/12; 
     savingsBalance = y +savingsBalance; 
    } 

    public void modifyInterestRate(int n) { 
     this.annualInterestRate = n; // Or simply: 
     annualInterestRate = n; 
    } 
} 

Durch die Art und Weise Felder muss nicht initialisiert werden. Standardmäßig sind sie 0, 0.0, null, false.

0

Wenn Sie diese Variable statisch machen, bedeutet dies, dass jede Instanz von SavingsAccount dieselben Werte anzeigt.

Wenn Sie meinen SavingsAccount erstellen, stellen Sie bitte den Wert gleich dem Guthaben von Warren Buffet ein.

Eine bessere Idee wäre Instanzvariablen zu verwenden:

public class Account { 
    private double balance; 

    public Account(double balance) { this.balance = balance; } 

    public double getBalance() { return this.balance; } 
    public void setBalance(double newBalance) { this.balance = newBalance; } 
} 
Verwandte Themen