Head First Java 第2版
頭とからだで覚えるJavaの基本
(オライリージャパン)
Kathy Sierra (著) Bert Bates (著) 島田 秋雄(監修)
神戸 博之 (監修) 高坂 一城 (監修) 夏目 大 (翻訳)
開発環境
- OS X Mavericks - Apple(OS)
- Emacs (CUI)、BBEdit - Bare Bones Software, Inc. (GUI) (Text Editor)
- Java (プログラミング言語)
- javac (コンパイラ)
- java (application launcher)
Head First Java 第2版 ―頭とからだで覚えるJavaの基本(Kathy Sierra (著)、Bert Bates (著)、島田 秋雄 (監修)、神戸 博之 (監修)、高坂 一城 (監修)、夏目 大 (翻訳)、オライリージャパン)の10章(数値の扱いとスタティック変数、メソッッド)、エクササイズ(コンパイラになってみよう(p.310))を解いてみる。
エクササイズ(コンパイラになってみよう(p.310))
コード(BBEdit, Emacs)
StaticTests.java
class StaticSuper {
// 1
static {
System.out.println("super static block");
}
// 3
// コンストラクタの括弧()が抜けている
StaticSuper() {
System.out.println("super constructor");
}
}
// スタティックは初期化される
// StaticTestskurクラスのstaticを初期化する。StaticTestsはStaticSuperのサブクラス
// なので、さらにその前にStaticSuperクラスのstaticが初期化される
public class StaticTests extends StaticSuper {
static int rand;
// 2
static {
rand = (int) (Math.random() * 6);
System.out.println("static block " + rand);
}
// 4
StaticTests() {
System.out.println("constructor");
}
public static void main(String [] args) {
// 3
System.out.println("in main");
// インスタンスを作成時に、StaticTestsのコンストラクタが呼び出される
// StaticTestsはStaticSuperのサブクラスだから、StaticSuperクラス
// のコンストラクタがさらに先に呼ばれる
StaticTests st = new StaticTests();
}
}
入出力結果(Terminal)
$ javac StaticTests.java && java StaticTests super static block static block 1 in main super constructor constructor $
0 コメント:
コメントを投稿