質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

1回答

326閲覧

MainクラスからCaliculatorクラスに引数からbalanceの値をセットしたい

0re0

総合スコア7

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2022/05/18 04:24

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 }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dodox86

2022/05/18 05:01

> static int balance; そもそもなぜstaticなフィールドなのでしょうか。先の質問からの流れだと思いますが、意図的にクラス共通のフィールドとして使うおつもりなのでしょうか。クラスとインスタンスの区別はついていますか。
0re0

2022/05/18 05:26

メソッドが実行されるとbalanceの値に+priceされるようにしたいので、 staticを使っているのですが、使い方があっていなければすみません。
dodox86

2022/05/18 05:40

> +priceされるようにしたいので、 > staticを使っているのですが、使い方があっていなければすみません。 合ってないです。staticフィールド(クラスのインスタンス全てで共通)を使う目的はそこではありません。
0re0

2022/05/18 05:47

今記述してるのはsetBalanceメソッドのみですが、 別にもメソッドを作って、どれかのメソッドが実行された時にbalanceの値が、+priceされたり、-priceされたりするようにしたいのですが、 使う目的はそこではありませんとはどういう意味でしょうか。
dodox86

2022/05/18 05:53

> 使う目的はそこではありませんとはどういう意味でしょうか。 staticを付けてクラスのフィールドとするのは、すべてのインスタンスで共通の値とするような場合です。他回答者であるepistemeさんも書かれていますが、値自体を+したりーしたりセットしたりはstaticフィールドでもできます。newで複数のインスタンスを生成して扱うときにそれでいいのですか? 何か違和感ないですか?ということです。
0re0

2022/05/18 06:13

Mainの方は課題で渡されていて、自分は手を加えてなく、気にしていませんでした。 何について言われているのかがわかりました。 staticとnewについてもう一度勉強し直してみます。 助かりましたありがとうございます。
guest

回答1

0

ベストアンサー

Calculator.setBalance(10000);
※ setBalance() は static メソッドなので。

[追記] 複数のCalculatorインスタンスをnewした場合、static int balance は(唯一ひとつ作られ)共有されますが、それはあなたのやりたいことですか?

投稿2022/05/18 04:41

編集2022/05/18 05:18
episteme

総合スコア16614

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0re0

2022/05/18 05:42 編集

メソッドが実行されるとbalanceの値が変わるようにしたいので やりたいことと合ってると思います。 追加の質問になってしまってもし訳ないのですが、 Calcilator.setBalance(10000); の記述だけでbalanceに10000の値が代入されますか? 代入するには別のことをする必要があるなら、 差し支えなければ教えていただきたいです。
episteme

2022/05/18 05:45

> やりたいことと合ってると思います。 Calculator c1, c2 があるとき、setBalance(123) すると両方とも balance = 123 になりますが、それでいいのね? > Calcilator.setBalance(10000); > の記述だけでbalanceに10000の値が代入されますか? balance値を返すメソッド getBalance() でも追加して確認してはいかがですか?
0re0

2022/05/18 05:56

全て質問してしまってすみません。 おそらくいいと思うのですが、勉強不足で確実にいいとも言えないので、 勉強し直して確認してみます。getBalance()も追加してみます。 端的でわかりやすかったです。ありがとうございました。
episteme

2022/05/18 06:10

> おそらくいいと思うのですが 「いいと思う」ではなくてあなたが「どうしたいか」です。 あなたが電卓ふたつ持ってて、かたっぽのクリア・ボタンおしたら両方ともクリアされる。そんな電卓を望んでいますか? ってことです。
0re0

2022/05/19 00:52

理解できていないので、いいのか判断できません。勉強不足で申し訳ないです。 別の部分でもエラーが出ているので、残りはスクールの先生に解説してもらおうと思います。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問