プロが教える店舗&オフィスのセキュリティ対策術

こんにちは。C#をやっていた者ですが、プログラミングコンテストに出場するにあたって、Javaを勉強しています。
基本的な部分は同じで、似てる部分も多々あって習得しやすいと思っていたのですが、どうやら細かい違いがあり、悩まされています。
C#では、ひとつのソースファイルに複数のクラスを記述できました。Javaの参考書でもサンプルコードに、

class Point3D{
public double x,y,z;
}
class example{
public static void main(String args[]){
Point3D p1 = new Point3D();
}
}

なんてありましたが、どうもEclipseにこれをいれると、

トークン "class" に構文エラーがあります。正しくは @ です

と出てきてしまいます。メンバークラスを使えば済む話ですが、参考書にこのように書いてあるのにエラーが出るのはなぜでしょうか?C#だとすっきり通るのですが・・・。
そもそもオブジェクト指向について私はまだ勉強が足りないのでしょうか?
ご教授願います。

A 回答 (3件)

なにかエラーメッセージ的に



「;」と「:」を間違えたために発生しているエラーなきがする。
    • good
    • 0

> ソースコードは1つしか提出できないプログラミングコンテストでは、


> メンバークラスなどで工夫してやるしかなさそうですね。

Javaでもひとつのソースファイルに複数のクラスを記述できます。
そんなことをしなくても大丈夫ですよ。

ANo.1の指摘はその通りですけれど,今回の質問では,
  public class Point3D {....}
  public class example {....}
のようにpublicなクラスを1ファイルに複数書いているわけでありませんから,
質問文に提示されたサンプルコードをcopy&pasteしてjavacコンパイルすれば,エラーなく正常に通りますよ。

提示されたエラーメッセージは,行末の;を忘れていたり,開き括弧/閉じ括弧の対応がとれていなかったりしたときなど単純ミスでよく見かけるエラーですよね。
    • good
    • 0

オブジェクト指向の理解とは関係ありません。

Javaの仕様の制約です。
Javaでは、publicなクラスは1ファイルに1つしか書けません。
    • good
    • 0
この回答へのお礼

そうなんですか。ではなぜ私の参考書にはひとつのソースに2つもクラスが入ってるんだろう・・・
あらかじめそこは知ってて、そちらでコードを別ファイルに分けてくださいってことなのかな?
初めて知りました。ありがとうございます。
ソースコードは1つしか提出できないプログラミングコンテストでは、メンバークラスなどで工夫してやるしかなさそうですね。

お礼日時:2011/11/08 20:21

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

このQ&Aを見た人はこんなQ&Aも見ています