現在Javaを勉強していて、その際に「スッキリわかるJava入門第二版」という本を参考にしています。
今回はその本の第2章6項目「命令実行の文」に関して疑問がわいたので質問させてください。
疑問の具体的な箇所は例えば、乱数を発生させ代入する文。以下の式です。
int r = new java.util.Random().nextInt(①);
この式の処理内容を初心者ながらに解釈しますと
1: new演算子によってjava.utilパッケージのRandomクラスをインスタンス化する。
2: 生成されたインスタンスのnextIntメソッドを呼び出し、値を出す
3: int型の変数rを宣言し、2で出た値を代入する。
という流れになると思います。
ではインスタンス化する理由はなんでしょうか?
nextIntメソッドは
public int nextInt(bound)
という風にstaticが記述されてないからですか?
静的メソッド(staticでないメソッド)はインスタンスを生成しなくても呼び出せる。
しかしそうでないメソッドはインスタンスを生成しなければ呼び出せない(1個以上)らしいのです。
だとすれば静的メソッドでないnextIntメソッドはインスタンスを生成しなければ呼び出さない。
だからnew演算子によってインスタンス化をする。
というのが僕の結論です。
間違っていれば教えてください。
質問の要点は
1.例文(式)の処理の流れ
2.インスタンス化する理由
の2点です。
回答待っています。

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/07/01 11:43