2017-01-26 6 views
1

私はプログラミングが新しくなりました。私はそれがコンストラクタですが、2つの数値を取得する簡単なCalcクラスを作成しました。私はcalcTotal methodを作成し、これらの2つの数値を合計してtotalと呼ばれる変数に入れます。次に、System.out.println(total)以外のprintTotalメソッドを作成しました。カスタムクラスの変数は常に0を出力します

メインにオブジェクトを作成してprintTotalメソッドを呼び出すと、常に0が出力されます.Calcクラスでtotalが0に初期化されていると分かります。計算された合計をcalcTotalメソッドからprintTotalメソッドに渡す方法がわかりません。私がSystem.out.println(total)をcalcTotalメソッドに配置すると、メインの呼び出しが正しい合計になります。

hetes私のCalcクラス

public class Calc{ 

private int numOne; 
private int numTwo; 
private int total; 

public Calc(int numOne, int numTwo){ 
    this.numOne = numOne; 
    this.numTwo = numTwo; 
} 

    public void calcTotal(){ 

    total = numOne + numTwo; 

} 

    public void printTotal(){ 

    System.out.println(total); 
} 
} 

public class HelloWorld{ 

public static void main(String []args){ 

    Calc myCalc = new Calc(3,5); 
    myCalc.printTotal(); 

} 
} 

私のメインの私はそれが超初心者の質問です知っていて、それはおそらくdownvoted取得しますが、それは私をイライラ。

はあなたが印刷メソッドを呼び出す前に、calcTotal()、計算を行うメソッドを呼び出すことはありません、ので、合計が計算されることはありません任意のヘルプ

+1

"*私はcalcTotalクラスを作成しました*"。あなたは 'クラス'を作成しませんでした。 'method' calcTotalを作成します。 – msagala25

+0

ありがとうございました。私はそのタイプミスに気付きませんでした – zsh5032

答えて

6

いただきありがとうございます。

しかし、このエラーは、単にcalcTotal()にint値を返すだけで簡単に防ぐことができるため、2つの方法を使用するべきではありません。そして、呼び出し側のコードはそれを印刷したり、 。

メインで
public int calcTotal() { 
    return numOne + numTwo; 
} 

Calc myCalc = new Calc(3,5); 
System.out.println("total: " + myCalc.calcTotal()); 
+1

'int'を返すべきではありませんか? –

+0

@エリサドフ:確かにあなたは正しいよ –

+0

いい答えです! –

3

あなたはそれを印刷する前に、合計を計算することはありません。あなたのメインはこのように見えるはずです。

public class HelloWorld{ 

public static void main(String []args){ 

    Calc myCalc = new Calc(3,5); 
    myCalc.calcTotal(); 
    myCalc.printTotal(); 

} 
} 

コンストラクタにcalcTotal()関数を追加することをお勧めします。

public Calc(int numOne, int numTwo){ 
    this.numOne = numOne; 
    this.numTwo = numTwo; 
    calcTotal(); 
} 
+0

答えをありがとう私はそれ以上の1つを正しい選択することはできませんので、私はupvotedはい – zsh5032

関連する問題