//////////////////////////////////////////////////////////////////
abstract class Time_D {
abstract Object Sec();
abstract Object Min();
abstract Object Hour();
}
//////////////////////////////////////////////////////////////////
class PresentTime_D extends Time_D {
Object Sec() {
Date tm = new Date();
SimpleDateFormat formatter = new SimpleDateFormat("s");

return new Integer(Integer.parseInt(formatter.format(tm)));
}

Object Min() {
Date tm = new Date();
SimpleDateFormat formatter = new SimpleDateFormat("m");

return new Integer(Integer.parseInt(formatter.format(tm)));
}

Object Hour() {
Date tm = new Date();
SimpleDateFormat formatter = new SimpleDateFormat("h");

return new Integer(Integer.parseInt(formatter.format(tm)));
}
}

////////////////////////////////////////////////////////////////
class SetTimeCheck_D extends PresentTime_D {

int settime;

SetTimeCheck_D(int _settime) {
settime = _settime; }

//--------------------------------------------------
Object Sec() {

return new Boolean(((Integer)super.Sec).intValue == settime); }

Object Min() {

return new Boolean(((Integer)super.Min).intValue == settime); }

Object Hour() {

return new Boolean(((Integer)super.Hour).intValue == settime); }
}


上記のようなプログラムをした場合、下記のようなエラーが出ます。
return new Boolean(((Integer)super.Sec).intValue == settime); } のSecはPresentTime_Dのクラス内のフィールドではありません。

なぜ、このようなエラーが出るのですか?

A 回答 (1件)

クラスSetTimeCheck_D内の各super.Sec,super.Min,super.Hourは、


インスタンスとして定義されていません。
この場合、それぞれはメソッドとして定義しているため下記のように記述する必要があります。
super.Sec()
super.Min()
super.Hour()
また、それに合わせて、Integerクラスの使用方法も誤解があるみたいです。
Integerクラス内にintValueフィールドは存在していません。これもメソッドです。
    • good
    • 0
この回答へのお礼

やっと意味がわかりました。ありがとうございました。

お礼日時:-0001/11/30 00:00

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

今、見られている記事はコレ!

おしトピ編集部からのゆる~い質問を出題中

お題をもっとみる


このカテゴリの人気Q&Aランキング

おすすめ情報

カテゴリ