プロが教えるわが家の防犯対策術!

基本情報技術者の学習をしている者です。

平成19年度秋期 基本情報技術者試験の
Java問題(問8:待ち行列の問題)を
実際にコーディング後の、コンパイルが出来ません。
(入力済みコードは、問題文と照合して間違いないです)
エラーメッセージは、

クラス WeightedQueue は public であり
ファイル WeightedQueue.java で宣言しなければなりません。

クラス WeightedQueueTester は public であり
ファイル WeightedQueueTester.java で宣言しなければなりません。

です。
実プログラムでトレースしてみたいのですが、
・本試験問題が、何故コンパイルエラーになるのか?
・果たして、このコードは正しいのか?
疑問だらけです。

又、平成20年度春期の同試験
Java問題(問8:電気ポットの問題)でも、
クラス ・・・は public であり
ファイル ・・・・.java で宣言しなければなりません。
クラス ・・・は public であり
ファイル ・・・・.java で宣言しなければなりません。
と、同様のコンパイルエラーが出ます。

詳しい方教えて下さい。
宜しくお願い致します。

A 回答 (3件)

ソースコードを保存したファイルのファイル名が間違えているのだと思います。



* WeightedQueue クラスのソースファイルのファイル名は「WeightedQueue.java」に
* WeightedQueueTester クラスのソースファイル名は「WeightedQueueTester.java」に

する必要がありますが、そうなっていないのではないでしょうか。

この回答への補足

ご回答をありがとうございました。

ファイル名を
WeightedQueue.java

WeightedQueueTester.java
で、保存したらコンパイルできました。
WeightedQueueTester.javaの方は、問題冊子の答えを確認出来ました。

ただ、新たな問題が出ました。
WeightedQueue.javaを
java WeightedQueueで走らしたところ、

Exception in thread "main" java.lang.NoSuchMethodError:main
とメッセージが出ました。

IPAの試験問題が欠陥?なのでしょうか?
WeightedQueue.javaも動かしたいので
もし対処方法をご存知でしたら、
差し支えなければ、再度ご教示いただけませんでしょうか?
宜しくお願いします。

補足日時:2009/06/19 15:15
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2009/07/02 21:47

No.2の回答にある通りですが、WeightedQueue には main メソッドがないのでこのクラスを単独で実行することはできません。



WeightedQueueTester が内部で WeightedQueue を使っているので、WeightedQueueTester を実行したときに WeightedQueue も動いています。
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2009/07/02 21:48

> Exception in thread "main" java.lang.NoSuchMethodError:main



main()メソッドがないということなので WeightedQueue.java は単独で動作するプログラムではないのでしょう。
元のソースを見ていないのでクラス名からの推測ですが、WeightedQueueはWeightedQueueTesterを動かしたときに呼ばれるクラスが記述されていると思われます。
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2009/07/02 21:47

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