みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

JAVAのプログラムについて

//////////////////////////////////////////////////////////////////
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のクラス内のフィールドではありません。

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

投稿日時 - 2000-12-03 16:34:01

QNo.15995

困ってます

このQ&Aは役に立ちましたか?

9人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

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

投稿日時 - 2000-12-03 17:54:09

お礼

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

投稿日時 - 0000-00-00 00:00:00

あなたにオススメの質問