質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Q&A

解決済

2回答

25052閲覧

クラスファイル分けについて(オブジェクト指向?)

mckkon

総合スコア11

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

0グッド

1クリップ

投稿2016/10/19 06:37

Javaで課題を作ったのですが、他の方と作り方が若干違っていてどちらが正しい、というかプログラミングの現場では通常どちらの書き方をするのかが知りたくて質問しました。ちなみにeclipseを使っています。

A.java(ファイル名)
public class A{
}
class B extends A{
}

このように1つのクラスファイルにクラスを複数書くか

A.java
public class A{
}
B.java
public class B extends A{
}

このようにクラスファイルを一つ一つ分けて書くやり方に分かれました。
これはどちらのやり方が普通なのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

通常どちらの書き方をするのかが知りたくて

Javaでは1ファイル1クラスが原則です。

他の言語は必ずしもそうではありませんが、
べつに従っても損はない規約だと思います。


なぜ、1対1対応なのかというと、
言語側の都合とかもあるのでしょうが、
単純に管理しやすいと理解すると分かりやすいです。

Javaは大規模なプログラム向きの言語です。

そこでクラスが何百、何千もあると、
ファイル名が対応してた方が検索などしやすいです。
(べつに全文検索でもできるがやりたくない)


それに、ひとつのファイルにふたつ以上クラスがあると、
修正するときに別クラスに影響を及ぼしかねません。

手がすべってミスタイプするとか。そのとき複数クラスだと、
テストをすり抜けたりして見つかりにくいです。

そういうミスが99%なくても、クラスが百あれば起こるわけです。
だからファイルも別にして、カプセル化しておくのは理にかなってます。

投稿2016/10/19 08:45

LLman

総合スコア5592

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ソースコードは、コードブロック内に書いたほうが見やすいです。

"B" とか "I" とか "A" とかのアイコンがあるやつの中で、

"</>" ( "コード" ) を押して、

"ここに言語を入力" の部分に 言語名 を入れて

"コード" の部分を削除して ソースコードを記述します。

そのほうが見やすいです。


質問に関して:

私も気になったので、「Java クラス 複数 1ファイル」
と検索したところ、

Java のクラスファイル1件で定義できる クラスの数は1件 で、ファイル名はクラス名と同一名称が必須、Python のモジュールファイルは、クラス & メソッド、いくつでも記述できて、ファイル名とクラス名・メソッド名 違う名前で OK
がヒットしました。

これによると、

「ただし、管理上の混乱を招く可能性がある為、極力、1ファイル=1クラスのルールに従ってプログラミングを行ったほうが良いと思います。」
( 同ページ内, "3) 及び 4) の参考ウェブサイト" より引用。 )

一応、public をつけないなら、複数入れることが可能ですが、classファイルになるときは、
分割されてコンパイルされます。

サイト等で初心者に対しての説明や、動くかどうかのサンプルコード ( テストプログラム ) としてなら 複数のクラスを一つのファイルに書くのもOKですが、
そうじゃなければ クラスごとに分割したほうがよさそうです。

投稿2016/10/19 07:04

BeatStar

総合スコア4958

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問