Part 02 Chapter 05
ランダムな数を random.nextInt メソッドを使って取得する
int <ランダムな数> = random.nextInt ( <数の上限> ) ;
- nextIntメソッドは戻り値にランダムな整数(int型)を返す。
- 引数には乱数の上限値(int型)を指定する。
Random.nextIntを使うには
- インポート宣言
- インスタンスの作成
- メソッドの呼び出し
ターミナル:
➜ args javac Sample3.java
➜ args java Sample3
ラッキナンバーは6です!
ちなみに Randomクラス をAIで深掘りすると...
Random クラスは疑似乱数ジェネレータ(Pseudo-Random Number Generator, PRNG)を使用してランダムな数字を生成します。これは、完全にランダムではなく、初期シード値に基づいて数列を計算するアルゴリズムによって生成される数値のシーケンスです。
Random クラスによって生成される乱数は疑似乱数であるため、真のランダム性(物理的なランダム性)を必要とするセキュリティ関連の用途には適していません。セキュリティ上の目的で乱数を使用する場合は、java.security.SecureRandom というクラスを使用することが推奨されます。SecureRandom は暗号学的に強い乱数を生成し、より予測が困難です。
...だそうです。
インポート宣言
ここで登場した「インポート宣言」とは?
import <パッケージ名> . <クラス名> ;
インポート宣言の必要なパッケージと不要なパッケージがあるそうです。
これまでのプログラムでは不要だった訳は、Java標準ライブラリのうちの java.langパッケージだったから。
-
以下、java.langパッケージ
- Object: すべてのクラスのスーパークラス。
- Class: クラスオブジェクトのメタクラス。
- String: 文字列を表す不変クラス。
- StringBuilder と StringBuffer: 文字列を効率的に操作するためのクラス。
- System: システム関連のプロパティやユーティリティメソッドを提供。
- Throwable: すべてのエラーと例外のスーパークラス。
- Exception: 標準例外クラスのスーパークラス。
- RuntimeException: 非チェック例外のスーパークラス。
- Thread: スレッドを作成して制御するためのクラス。
- Enum: 列挙型の基底クラス。
- Math: 数学関連のメソッドを提供。
- Package: クラスとインターフェースのパッケージに関する情報を提供。
↑これらは「インポート宣言」不要で、これ以外を使う場合には必要だそうです。
-
以下「インポート宣言」が必要なパッケージ(主なもの)
-
java.util
ArrayList
,LinkedList
: リスト構造を提供するクラス。HashMap
,TreeMap
: マップ構造を提供するクラス。HashSet
,TreeSet
: セット構造を提供するクラス。Scanner
: テキストスキャンおよび解析のためのクラス。Date
,Calendar
: 日付と時間の操作に関するクラス。
-
java.io
File
: ファイルとディレクトリパスを抽象化するクラス。InputStream
,OutputStream
: バイトストリームI/Oを行うための基本クラス。Reader
,Writer
: 文字ストリームI/Oを行うための基本クラス。BufferedReader
,BufferedWriter
: バッファリングによる高速な読み書きを提供するクラス。
-
java.net
URL
,URI
: URLとURIを扱うためのクラス。Socket
,ServerSocket
: ネットワーク通信におけるソケットプログラミングをサポートするクラス。
-
Connection
,Statement
,ResultSet
: データベース接続およびSQLクエリの実行に関連するクラス。
- その他、java.aplet、java.beens、java.math、java.nio、java.awtなど。
new演算子を使ってRandomクラスのインスタンスを作成し、Randomクラス型の変数にインスタンスを代入
インスタンスとはクラスから作成される実体のこと。インスタンスを作成するときの演算子が new (新しく作るという意味)です。
Java標準ライブラリのクラスの多くは new演算子でインスタンスを作ってから利用します。
書き方:
<クラス名> <変数名> = new <クラス名> ( <引数 > ) ;
<変数名>:作成したインスタンスを代入する変数
<引数>が必要かどうかはインスタンスを作成する変数によって異なる
その変数を通してメソッドを呼び出す
メソッドの呼び出し:
<変数名> . <メソッド名>
しかし、前回数字の変換の時の Integer.parseInt() ではインスタンスを作らずにメソッドを呼び出しました。
このように、Java標準ライブラリを利用するときには
の2種類があります。
インスタンス → 一時的または動的
static → 静的
メソッド |
呼び出し例 |
解説 |
インスタンスメソッド |
Random rand = new Random(); Int num = rand.nextInt(10) |
<インスタンスの変数名> . <メソッド>で呼び出す |
staticメソッド |
Int num = Intefer.parseInt(“7”); |
<クラス名> . <メソッド>でメソッドを呼び出す |
学習テキスト