MainクラスのsetBalanceの10000を
CaliculatorクラスのsetBalanceメソッド内に渡したいのですが、
調べてやってみても「構文エラーがあります」とばかりでてしまいます。
どのようにすればいいか、勉強させていただきたいです。
よろしくお願いします。
Main.java
1public class Main { 2 public static void main(String[] args) { 3 Calculator t1 = new Calculator(); 4 5 t1.setBalance(10000);
Caliculator.java
1public class Calculator { 2 3 static int balance; 4 5 public static void setBalance(int price) { 6 //この部分に引数からbalanceの値を10000としたい 7 }
> static int balance;
そもそもなぜstaticなフィールドなのでしょうか。先の質問からの流れだと思いますが、意図的にクラス共通のフィールドとして使うおつもりなのでしょうか。クラスとインスタンスの区別はついていますか。
メソッドが実行されるとbalanceの値に+priceされるようにしたいので、
staticを使っているのですが、使い方があっていなければすみません。
> +priceされるようにしたいので、
> staticを使っているのですが、使い方があっていなければすみません。
合ってないです。staticフィールド(クラスのインスタンス全てで共通)を使う目的はそこではありません。
今記述してるのはsetBalanceメソッドのみですが、
別にもメソッドを作って、どれかのメソッドが実行された時にbalanceの値が、+priceされたり、-priceされたりするようにしたいのですが、
使う目的はそこではありませんとはどういう意味でしょうか。
> 使う目的はそこではありませんとはどういう意味でしょうか。
staticを付けてクラスのフィールドとするのは、すべてのインスタンスで共通の値とするような場合です。他回答者であるepistemeさんも書かれていますが、値自体を+したりーしたりセットしたりはstaticフィールドでもできます。newで複数のインスタンスを生成して扱うときにそれでいいのですか? 何か違和感ないですか?ということです。
Mainの方は課題で渡されていて、自分は手を加えてなく、気にしていませんでした。
何について言われているのかがわかりました。
staticとnewについてもう一度勉強し直してみます。
助かりましたありがとうございます。
回答1件
あなたの回答
tips
プレビュー