-PR-
解決
済み

javaのソースとclassファイルの単位について

  • すぐに回答を!
  • 質問No.60680
  • 閲覧数1297
  • ありがとう数5
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 81% (18/22)

最近JAVAの勉強を始めました。
基礎的なことで恐縮ですが、JAVAのコンパイル単位を知りたいのですが。
一つの*.javaファイルについては、必ず一つのclassファイルができるんでしょうか?
一つの*.javaファイルから、複数個のclassファイルができたり、複数の*.javaファイルから
一つのclassファイルができたりはしないんでしょうか?

まだ、一つの*.javaから一つのclassファイルを作ったことしかないので、
申し訳ないですが、どなたか教えてください。よろしくお願いします。
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.1
レベル10

ベストアンサー率 25% (34/132)

基本的にファイルには関係なく ソースに有るclassごとに *.class
のファイルができます。
なので、一つのjavaファイルの中に複数のクラス(インナークラスも含め)
が有ればその数分classファイルができます。

ただこれらのファイルを jarファイルにまとめてしまえば *.jar
のファイル一つにもになりますが。
ファイル内に
class クラス名1{
}
class クラス名2{
}

があれば クラス名1.class と クラス名2.class
のファイルが出来ます。
お礼コメント
shigeki-yy

お礼率 81% (18/22)

おお。本当っだっ。へぇぇ。

ありがとうございます。とても助かりました。
投稿日時 - 2001-04-07 01:58:08
-PR-
-PR-

その他の回答 (全2件)

  • 回答No.2
レベル7

ベストアンサー率 44% (8/18)

> 一つの*.javaファイルについては、必ず一つのclassファイルができるんでしょうか? > 一つの*.javaファイルから、複数個のclassファイルができたり、 これに関しては先のgookenさんの答えておられる通りです。 ただし、パブリッククラス(public class ~ と定義するもの)は一つのjavaファイルにつき一つしか定義できないはずです。 また、インナ ...続きを読む
> 一つの*.javaファイルについては、必ず一つのclassファイルができるんでしょうか?
> 一つの*.javaファイルから、複数個のclassファイルができたり、

これに関しては先のgookenさんの答えておられる通りです。
ただし、パブリッククラス(public class ~ と定義するもの)は一つのjavaファイルにつき一つしか定義できないはずです。

また、インナークラスの場合には
(MyClassという名前のクラス内で定義されたインナークラスの場合)
MyClass$1.class, MyClass$2.class ...
というような名前になりますね。


> 複数の*.javaファイルから一つのclassファイルができたりはしないんでしょうか?

こちらはできないはずです。
お礼コメント
shigeki-yy

お礼率 81% (18/22)

本当だ。

public class Test44 {
*
*
}
public class Test45 {
*
*
}

で、コンパイルすると、
「Test44.java:21: クラス Test45 は public であり、ファイル Test45.java  で宣言しなければなりません。
 public class Test45 {
  ^              」

というメッセージが出ます。

「パブリッククラスの場合は、クラス名とイコールの*.javaファイルで作らないといけない。→つまり1対1になる。」
ということですね。

とても助かりました。ありがとうございます。
投稿日時 - 2001-04-07 14:30:55


  • 回答No.3
レベル7

ベストアンサー率 44% (8/18)

>「パブリッククラスの場合は、クラス名とイコールの*.javaファイルで作らないといけない。→つまり1対1になる。」 ということですね。 ▼ その通りです。shigeki-yy さんのおっしゃる通りですね。   私が曖昧な書き方をしていたもので、すいませんでした。 > ただし、パブリッククラス(public class ~ と定義するもの)は一つのjavaファイルにつき一 ...続きを読む
>「パブリッククラスの場合は、クラス名とイコールの*.javaファイルで作らないといけない。→つまり1対1になる。」
ということですね。

▼ その通りです。shigeki-yy さんのおっしゃる通りですね。
  私が曖昧な書き方をしていたもので、すいませんでした。

> ただし、パブリッククラス(public class ~ と定義するもの)は一つのjavaファイルにつき一つしか定義できないはずです。

▼ では。javaのお勉強、頑張ってくださいね!
お礼コメント
shigeki-yy

お礼率 81% (18/22)

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

VBにすっかり慣れてしまっているので、すべてのOS上で動くことをコンセプトとしたJAVAは知れば知るほど魅力的です。

 今は、仕事でJAVAで行っている開発資産を管理することになるので、ぼちぼちと勉強しているところです。せっかく始めたので、いずれはiアプリを作ることが目標です。

今後ともよろしくお願いします。
投稿日時 - 2001-04-08 00:58:05
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ