12月21日は皆既月食です

 2010年12月21日(火)、16 時 40 分〜 17 時 54 分に皆既月食が起こります。昼間に暗くなる日食に比べ、月食は夜に月が欠けるだけなので地味ではありますが、子供の頃に観るとそれなりに記憶に残ります。お子様のいる方は、国立天文台の皆既月食を観察しようキャンペーンに参加しても楽しいかもしれません。

 残念ながら関東地方南部は雨の予報ですが、運がよければ東の空に月が観測できます。
詳細な方位はここをクリック。(おはこん番地は!?API)

 続きは観測のコツを紹介します。
Continue reading →

Javaのprotectedの意味

Javaのアクセス修飾子protectedで少しハマったので、調べた内容をメモしておきます。

通常、protectedと指定されたフィールドやメソッドは「同一package内と、そのクラスを継承したサブクラス内からアクセスできる」と説明されます。私自身も同様の理解だったのですが、次のようなケースで予想外の挙動となりました。

クラスBaseとChildが別のpackageに属する場合、

package base;

public class Base {
	
	protected void baseMethod() {
		System.out.println("Base method.");
	}
	
}
package child;

import base.Base;

public class Child extends Base {

	public void childMethod(Base base) {
		base.baseMethod();	// NG
	}
	
}

Childクラスの中でBaseクラスの引数を受け取ってbaseMethod()を呼び出そうとすると、”The method baseMethod() from the type Base is not visible”と怒られてしまうのです。
Continue reading →