2ちゃんねる ■掲示板に戻る■ 全部 1- 最新50    

■ このスレッドは過去ログ倉庫に格納されています

Java詳しい人ちょっとこいよ

1 :以下、?ちゃんねるからVIPがお送りします:2018/07/04(水) 09:40:56.856 ID:lRYa+axuM.net
クラスメソッドから同じクラスのインスタンスメソッドは呼び出せないけど
これって内部的にはどうなってんの?
インスタンスを生成しないとそのメソッドは存在してない状態って事なんだよな?

2 :以下、?ちゃんねるからVIPがお送りします:2018/07/04(水) 09:48:25.642 ID:lRYa+axuM.net
JVMの仕様みればわかるのかな

3 :以下、?ちゃんねるからVIPがお送りします:2018/07/04(水) 09:51:10.857 ID:9qEwpE6K0.net
クラスっていうのは結局構造体の拡張で、変数の集まり
メソッドっていうのは要するに関数ポインタ(メモリの中で関数が格納されている領域の先頭アドレスを指したもの)
インスタンスを作るというのは、メモリの中に変数領域を確保すること
メソッドにアクセスするのは、関数ポインタを参照して、それが示す関数にアクセスすること

4 :以下、?ちゃんねるからVIPがお送りします:2018/07/04(水) 09:58:02.042 ID:lRYa+axuM.net
>>3
すまねぇ、理解力の低いバカで悪いんだけど
つまりはクラスメソッドはその関数ポインタの中に最初から作られてるけど
インスタンスメソッドはインスタンスを作らない限り関数ポインタに含まれずに参照できないって事であってる?

5 :以下、?ちゃんねるからVIPがお送りします:2018/07/04(水) 10:03:04.292 ID:7XtNDhIHa.net
「存在していない」ってのがコンパイルされないってことなのかメモリにロードされてないって意味なのかわからんが、どっちにしてもそんなことは考えても意味なし

インスタンスメソッドはインスタンスを生成していなければ呼べないしクラスメソッドからも呼べない(なぜならどのインスタンスに対する処理か判別できないから)ってルールだと覚えればよいだけ

6 :以下、?ちゃんねるからVIPがお送りします:2018/07/04(水) 10:07:10.430 ID:lRYa+axuM.net
>>5
なんか考え始めたら気になっちゃって知りたかったんだ

総レス数 6
2 KB
掲示板に戻る 全部 前100 次100 最新50
read.cgi ver.24052200