
Javaのstaticメソッドの意味を教えて下さい。
現在の解釈では、staticなメソッドとはインスタンスの生成に依存せず呼び出せる処理のことだと認識しています。逆にstaticでないメソッドは、生成後のインスタンスにしか使えない処理だと理解しています。
しかし、コンストラクタがstaticでないことに気がつき、疑問が生まれました。コンストラクタはstaticではないので、コンストラクタを呼び出す時にはそのクラスのインスタンスが必要になるはずです。しかしこのインスタンスを作るのにもコンストラクタが必要です。コンストラクタを使うためにインスタンスが必要で、インスタンスを作るためにコンストラクタが必要という無限ループになってしまいました。
そこで改めて、staticメソッドの意味を教えて頂きたいです。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
static なメソッド = クラスを対象にする処理
static イニシャライザ = クラスを対象に(初期化)する処理
static でないメソッド = インスタンスを対象にする処理
コンストラクタ = (new によって作られた)インスタンス(のひな形)を対象に(初期化)する処理
No.1
- 回答日時:
そもそも、コンストラクタとメソッドは切り分けて考えてください
別物です
コンストラクタはインスタンス生成時に動く特別な処理だと思ってください
コンストラクタを呼んでいるのではなく、コンストラクタが自動的に動いているだけです。
なのでstaticをメソッドに付けた場合とコンストラクタに付けた場合では
全く違う動きになります
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
オブジェクト参照がオブジェク...
-
インスタンスを同じ名前で作成...
-
C#でオブジェクトの有無を取得する
-
インスタンス参照でアクセスで...
-
VB.NET getとsetの概念がわかり...
-
C#において、同じインスタンス...
-
serializeについて
-
private static という変数の修飾
-
C# クラスのインスタンスについて
-
変数名の付け方
-
Javascriptのインスタンスって...
-
生成したインスタンスを削除す...
-
変数の参照でエラーが出てしま...
-
JSPでの表示
-
プログラミング、シューティン...
-
Objective-C グローバル変数 値...
-
次の日本語の意味を教えて下さい
-
中学のクラス数
-
「タイプ初期化子が例外をスロ...
-
ヒグマを撃退
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
インスタンス参照でアクセスで...
-
変数名の付け方
-
private static という変数の修飾
-
C#において、同じインスタンス...
-
複数の変数を宣言する時、同時...
-
オブジェクト参照がオブジェク...
-
VB.NET getとsetの概念がわかり...
-
フォームの存在をチェックする方法
-
変数の参照でエラーが出てしま...
-
C# インスタンスの破棄
-
生成したインスタンスを削除す...
-
文字列を日付に変換でParseExce...
-
次の日本語の意味を教えて下さい
-
C#「オブジェクト参照が必要で...
-
SQLを連続発行する時の正しい(?...
-
「インスタンス」の意味をわか...
-
[Visual C#] 優先される処理に...
-
newしないインスタンス?実体化...
-
C#の構造体の開放のしかた
-
javaのクラスの作り方、エラー...
おすすめ情報