※ ChatGPTを利用し、要約された質問です(原文:Javaの問題集の解答が意味不明です)
Java問題集の解答が意味不明?問題集とEclipseのどちらが間違っている?
このQ&Aのポイント
Java勉強中の初心者が「Oracle Javaプログラマ SE6」の問題集の解答について質問しています。
問題集の解答が値として出るのにも関わらず、Eclipseで実際に検証するとエラーが出てしまうそうです。
質問者は問題集が間違っていると思っていますが、Eclipseのエラーメッセージの通りに認識していいのか迷っています。
Java勉強中の初心者です。
お世話になります。
「Oracle Javaプログラマ SE6」のある問題集の中から、
下記の問題文がありました。
問題集の答えは「値」が出るのですが、Eclipseで実際に検証しようとすると、
エラーが出ます。
質問ですが、間違っているのは、問題集なのか、Eclipseなのか見当が付きません。
問題集が間違ってると思うのですが、認識は合ってますか?
また、間違っているポイントは、Eclipseのエラーの通りでしょうか?
(Eclipseのエラーメッセージも噛み砕いて頂けますとありがたいです)
■問題集■
ーーーーーーーーーーーーーーーーーーーーーーーー
01: package jp.tu.book3; //←Eclipseで実行するために追記した文
02:
03: public class Sam0501 {
04: public static void main(String[] args) {
05: Sample.num = 10;
06: Sample s1 = new Sample();
07: Sample s2 = new Sample();
08: s2.num = 5;
09: System.out.println(s1.num + s2.num);
10: }
11: }
12:
13: public class Sample{
14: public static int num = 2;
15: }
ーーーーーーーーーーーーーーーーーーーーーーーー
問題
A. 7が表示される
B. 10が表示される
C. 15が表示される
D. 20が表示される
解答:B
ーーーーーーーーーーーーーーーーーーーーーーーー
■Eclipseでの実行■
・Eclipse情報 : Eclipse IDE for Java Developers
Version: Juno Service Release 2
・Java情報 : version 1.7.0_17
・ソースファイル名 : <Sam0501.java>
・Eclipseエラーメッセージ:
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
public 型 Sample はそれ独自のファイル内に定義されなければなりません
at jp.tu.book3.Sample.<init>(Sam0501.java:13)
at jp.tu.book3.Sam0501.main(Sam0501.java:6)
以上、よろしくお願いいたします。m(_ . _)m
お礼
早々のご回答を頂きまして、ありがとうございます。 おっしゃる通り、「public」は同じファイルにできなかったです。 大原則を忘れてました・・・。 問題集には、見ようによっては、別ファイルのようにも見えるので、 まったく、私の勘違いでした。「別ファイル」という意味だと気が付きました。 ありがとうございます。 また、 「同一ファイルであれば、public を外して」とのご助言、 public を外してコンパイルしたら、通りました。そして結果が、Bの10でした。 とても分かりやすい解説を頂きまして感謝します。 お忙しい中、ありがとうございます。