回答編集履歴
5
文章の修正
answer
CHANGED
@@ -3,9 +3,8 @@
|
|
3
3
|
> "aa.hello();"を実行する際、コンピュータは参照型変数"aa"自体の型を見て、その型のクラスにアクセスするのか
|
4
4
|
|
5
5
|
`aa`の型は`AA`なので、`AA`クラスに定義されている`hello`メソッドを呼び出しています。
|
6
|
-
型をチェックしているのはコンパイラであり、実際にそのクラスのインスタンスにアクセスしているのはコンパイルされたJavaのプログラムです。
|
6
|
+
[型をチェックしているのはJavaのコンパイラ](https://docs.oracle.com/javase/jp/7/technotes/tools/windows/javac.html#searching)であり、実際にそのクラスのインスタンスにアクセスしているのはコンパイルされたJavaのプログラムです。
|
7
7
|
|
8
|
-
|
9
8
|
> アップキャスト時に、参照型変数"bb"の指し示す先のインスタンスのヘッダの情報は変更されるのでしょうか? また、変数などのロック情報も変更されるのでしょうか?
|
10
9
|
|
11
10
|
`インスタンスのヘッダ情報` とは何でしょうか。`変数のロック情報`という言葉も聞いたことがありません。
|
@@ -20,4 +19,4 @@
|
|
20
19
|
|
21
20
|
`AA`クラスに定義されているフィールド`i`のアクセス修飾子が`private`だからであり、`private`なフィールドはクラスの外からアクセスすることができません。
|
22
21
|
|
23
|
-
`j`に関しては`AA`クラスに定義されておらず、private`でもあるので、同様にアクセスすることができません。
|
22
|
+
`j`に関しては`AA`クラスに定義されておらず、`private`でもあるので、同様にアクセスすることができません。
|
4
文章の修正
answer
CHANGED
@@ -3,11 +3,14 @@
|
|
3
3
|
> "aa.hello();"を実行する際、コンピュータは参照型変数"aa"自体の型を見て、その型のクラスにアクセスするのか
|
4
4
|
|
5
5
|
`aa`の型は`AA`なので、`AA`クラスに定義されている`hello`メソッドを呼び出しています。
|
6
|
+
型をチェックしているのはコンパイラであり、実際にそのクラスのインスタンスにアクセスしているのはコンパイルされたJavaのプログラムです。
|
6
7
|
|
8
|
+
|
7
9
|
> アップキャスト時に、参照型変数"bb"の指し示す先のインスタンスのヘッダの情報は変更されるのでしょうか? また、変数などのロック情報も変更されるのでしょうか?
|
8
10
|
|
9
11
|
`インスタンスのヘッダ情報` とは何でしょうか。`変数のロック情報`という言葉も聞いたことがありません。
|
10
12
|
なので、投げ遣りな回答かもしれませんが、それ等を気にする必要はありません。
|
13
|
+
※個人的には上記のワードの出典が気になるので、教えて頂きたいです
|
11
14
|
|
12
15
|
> "aa.yeah()"でコンパイルエラーになるのはどうしてでしょうか? 質問1と質問2の内容を関連付けて説明していただけると助かります。
|
13
16
|
|
@@ -17,4 +20,4 @@
|
|
17
20
|
|
18
21
|
`AA`クラスに定義されているフィールド`i`のアクセス修飾子が`private`だからであり、`private`なフィールドはクラスの外からアクセスすることができません。
|
19
22
|
|
20
|
-
`j`に関しては`AA`クラスに定義されて
|
23
|
+
`j`に関しては`AA`クラスに定義されておらず、private`でもあるので、同様にアクセスすることができません。
|
3
文章の修正
answer
CHANGED
@@ -11,7 +11,7 @@
|
|
11
11
|
|
12
12
|
> "aa.yeah()"でコンパイルエラーになるのはどうしてでしょうか? 質問1と質問2の内容を関連付けて説明していただけると助かります。
|
13
13
|
|
14
|
-
`aa`の型は`AA`なので、`AA`クラスに定義されていない`
|
14
|
+
`aa`の型は`AA`なので、`AA`クラスに定義されていない`yeah`メソッドは実行できません。
|
15
15
|
|
16
16
|
> "aa.i"と"aa.j"が下記のようなエラーを発生させるのがなぜだかわかりません。こちらも質問1と質問2の内容に関連させて説明いただけると助かります。
|
17
17
|
|
2
文章の修正
answer
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
> "aa.hello();"を実行する際、コンピュータは参照型変数"aa"自体の型を見て、その型のクラスにアクセスするのか
|
4
4
|
|
5
|
-
|
5
|
+
`aa`の型は`AA`なので、`AA`クラスに定義されている`hello`メソッドを呼び出しています。
|
6
6
|
|
7
7
|
> アップキャスト時に、参照型変数"bb"の指し示す先のインスタンスのヘッダの情報は変更されるのでしょうか? また、変数などのロック情報も変更されるのでしょうか?
|
8
8
|
|
1
間違えたので編集中
answer
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
> "aa.hello();"を実行する際、コンピュータは参照型変数"aa"自体の型を見て、その型のクラスにアクセスするのか
|
4
4
|
|
5
|
-
|
5
|
+
(間違えたので編集中)
|
6
6
|
|
7
7
|
> アップキャスト時に、参照型変数"bb"の指し示す先のインスタンスのヘッダの情報は変更されるのでしょうか? また、変数などのロック情報も変更されるのでしょうか?
|
8
8
|
|