
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
No.1ベストアンサー
- 回答日時:
こんにちは。
問題集がその通りであれば間違いですね。
>public 型 Sample はそれ独自のファイル内に定義されなければなりません
このエラーの通りで
public class Sample {
}
を定義するのであれば別のファイルでSample.javaの必要があります。
なので
Sam0501.javaとSample.javaの2ファイルが必要になります。
一つのファイルで定義するのであれば
class Sample {
}
とする必要があります。
早々のご回答を頂きまして、ありがとうございます。
おっしゃる通り、「public」は同じファイルにできなかったです。
大原則を忘れてました・・・。
問題集には、見ようによっては、別ファイルのようにも見えるので、
まったく、私の勘違いでした。「別ファイル」という意味だと気が付きました。
ありがとうございます。
また、
「同一ファイルであれば、public を外して」とのご助言、
public を外してコンパイルしたら、通りました。そして結果が、Bの10でした。
とても分かりやすい解説を頂きまして感謝します。
お忙しい中、ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- Java Java プログラム public class Main { public static void 3 2023/08/10 23:46
- Java 直し方について教えて頂きたいです。 4 2022/08/13 02:11
- Java eclipse実行ができない 2 2022/07/27 04:47
- Ruby 【JAVA】数字をひし形に出力するプログラムについて 2 2022/07/11 23:32
- PHP eclipse pleiades phpのインストールについて 1 2023/02/03 17:15
- Java java 飾子を付けること(public static・・・) ・コンソールへの出力処理はmainメ 2 2022/06/16 19:34
- Excel(エクセル) VBA フォルダ見える化のコードについて 2 2023/06/19 15:04
- C言語・C++・C# C言語初心者 ポインタについて、お助けください、、 2 2023/03/15 23:50
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C# DatagridviewにExcelシート...
-
継承プログラムについて
-
パッケージ化されたクラスより...
-
コンストラクタについて
-
Vectorを用いた問題
-
オーバーライド
-
ソースの実行の順番
-
javaのprivate finalメンバにつ...
-
日付の比較をしたいのですが・...
-
考えてもちっともいい案が出て...
-
続き webアプリをつくってます...
-
mainクラスのpublicの意味を教...
-
答えがわかりません…
-
クラスの作成 オブジェクトの...
-
Java JFileChooser
-
[Java]Javaの文法が間違っ...
-
setNameの使いかたでコンパイル...
-
コンストラクタの引数の中のnew?
-
JavaでJTableの行の追加方法に...
-
コマンドライン引数の*(アフ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
変数を動的に利用するには?
-
中カッコ{}だけの記述について
-
プログラミングの問題です。大...
-
初心者なので教えてほしいです。
-
Javaでlog4jを使ってログ出力を...
-
コンストラクタの引数の中のnew?
-
System.exit()の値を取得したい
-
JSP/Servletのパラメータの受け...
-
GetterとSetterをやったのに。
-
javaで処理のやり方がわかりま...
-
オーバーロードで
-
Timerについて教えて下さい
-
NoSuchMethodErrorが解決できま...
-
インタフェイス実装と抽象クラ...
-
randomで
-
C# DatagridviewにExcelシート...
-
javaのプログラミングで作るRPG...
-
所持金の計算式とその表示の仕方
-
【java】同ディレクトリ別ファ...
-
多次元配列の出力のところがわ...
おすすめ情報