読書会(Java言語仕様 第3版)第3回議事録

[ 戻る ]


議事録「Java言語仕様 第3版」を読む会(第3回)


出席者:高橋(徹)、高橋(透)、村山、岩室、高橋(智)、福岡、遠藤、奥野、
吉本、岡沢、根元、門脇
読み手:岩室、遠藤、岡澤、根本、高橋(徹)
書記:高橋(智)

P.102 (6.1 宣言)
配列のlengthは宣言に入るのか?
 --> JavaVM側が宣言する
 --> 暗黙のもの、実体のもの、自動的なもの

P.103 (名前と識別子)
識別子の定義は?
 --> P.19の3.8に書かれている
名前と識別子との違いは?
 --> "."の後ろが識別子
 --> 明確な定義は無い??
「以下の状況においても」の意味するところは?
 --> 単純名/限定名以外の識別子の使い方を列挙している
   --> 5つある!!
   --> 区切りには "." しかない
   --> C++には "::" がある

P.104 (名前と識別子)
ラベルは宣言ではない
 --> 名前でもない
 --> 実体が無い
 --> 識別子である!!
サンプルコードはJavaパズラーの問題になりうる!!
 --> コンパイルができるのか否か?

P.106 (宣言のスコープ)
pointsパッケージの Point と PointList の宣言を C++ で書いてみる
 --> 宿題!!
スクリプトでは依存する宣言ほ先に書く必要がある
 --> スクリプトは不便ではないか?
 --> JavaやC#などでは可能なのに...
pointsパッケージの Point と PointList の宣言を Ruby と PHP で書いてみる
 --> 宿題!!

P.107 (宣言のシャドーイング)
「シャドーイング」の日本語訳が無い
 --> 適切な日本語訳は?
 --> 「隠蔽(hide)」は日本語に訳されているのに...
 --> オプスキュアも日本語訳が無い

P.108 (宣言のシャドーイング)
コードに "import java.util.Vector"と書くとコンパイルエラーになるのか?
 --> 宿題!!
 --> オブスキュアになるのでは?
 --> 競合してエラーになる?
 --> コンパイラやIDEによってエラーが違う可能性がある

余談:
EclipseはそもそもJavaVMを使って動作しているのか?
 --> だとすると何のJavaVMを使用している? それを変更することは可能なのか?

P.110 (クラス型のメンバ)
クラスが実装(implements)したinterfaceのフィールドは、そもそも「継承」なのか?
 --> Test.WHITE と書ける!!

P.111 (インタフェース型のメンバ)
ColorsAndSeparates.WHITE と書ける!!

P.112 (配列型のメンバ)
配列の clone の使い方は?
 --> 配列の clone の戻り値は?
 --> ジェネリックスの利用の有無で書き方の違うのか?
 --> 宿題!!

P.114 (コンテキストによる名前の構文上の分類)
「限定的なthis式」とは?
 --> インナークラスで使用する際の話
「superキーワード...限定的な型」とは?
 --> アウタークラスのsuperにアクセスする時の話

P.119 (単純な式名)
static final int f = 3; がもし staticでない時はどうなる?

P.126 (例: フィールド、メソッド、コンストラクタのデフォルト・アクセス)
PlusPointのmoveがメソッドがPointのmoveメソッドをオーバーライドしないのは何故?
 --> オーバーライドが起こる条件は P.200 を見ること!!
 --> もし、PlusPointのパッケージが同じpointsだったら、オーバーライドする?

P.129 (完全限定名と正準名)
そもそも「正準」とは?
 --> 「canonical」の正しい日本語訳は?
 --> Win32のAPIや、JavaのFileクラスの日本語ドキュメントでは「正規」とある
   --> Java API リファレンスには「中国語版」がある?
     --> 何処にある?
     --> 「canonical」は中国語では何と訳されている?
 --> 数学用語には「正準、正規、標準、正則」がある

P.130 (パッケージ名)
"javax"や"sun"は使用すべきではない?
 --> そもそも予約されているパッケージ名は何処に書かれている?

P.140 (パッケージのファイル・システムへの格納)
漢字のパッケージ名やクラス名を使用してコンパイルする
 --> UTF-8の文字コードでパス名が作成されているようだ
 --> .jarファイルに固めて、jarコマンドでリストアップするとどう表示される?
   --> jarコマンドはUTF-8をプラットホームに合わせて変換して表示している
   --> .jarを.zipに変えて、WinZipなどで表示すると化けて見える

P.141 (コンパイル単位)
java.langとjava.ioはなぜ常に観測可能でなければならないのか?
 --> java.langにはjava.ioに依存しているコードがあるから

P.143 (無名パッケージ)
そもそもJavaには「カレントディレクトリ」が存在するのか?
 --> Javaで「カレントディレクトリ」を取得する方法は?
 --> Javaで「カレントディレクトリ」を変更する方法は?
 --> 宿題!!

次回は、P.146からスタート


[ 戻る ]