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

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

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

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

Q&A

解決済

2回答

1254閲覧

Java パッケージには複数のクラスが含まれている必要がある?

uranari

総合スコア7

Java

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

0グッド

1クリップ

投稿2018/03/30 11:21

編集2018/03/30 12:17

現在、OCJP Silverを勉強中ですが、クラスに関する正しい説明を選ぶ問題で、以下の選択肢が正解となっていました。

・パッケージには複数のクラスが含まれている必要がある。

Eclipseで試したところ、クラスがひとつのパッケージが作れるのですが、この問題が間違っているのか、再現方法が違うのでしょうか。

解説には「たくさんのクラスをまとめるにはパッケージを利用するため、複数のクラスが含まれているのが一般的です。よって正しい記述です」と記載されていました。
それで言えばパッケージ名にドメイン名を逆順に書くのも一般的ですが、仕様として定められてはいないと思うのですが……この問題は正しいのでしょうか。

以下追記です。
>asahina1979さん

すでに解決済みとしましたが、厳密な問題と選択肢は以下となります。

問題:オブジェクトとクラスに関する説明として、正しいものを選びなさい。(3つ選択)

A. オブジェクトは再利用できない
B. サブクラスはスーパークラスを継承できる
C. オブジェクトは、ほかのオブジェクトと動作を共有できる
D. パッケージには複数のクラスが含まれている必要がある
E. Objectはすべてのクラスのルートクラスである
F. 各クラスでmainメソッドを宣言する必要がある

BとEが正しいことは分かったのですが、Dは決まりごとではなさそうなので選択から排除して、Cは継承のことを指しているのかなぁと考えてB、C、Eとしました。
答えはB、D、Eという問題でした。

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2018/03/30 11:51

パッケージ名のは推奨CD規約ですね
退会済みユーザー

退会済みユーザー

2018/03/30 11:56

対象となる問題文と選択肢がないと詳しい回答は難しいかもしれない。
uranari

2018/03/30 12:27

CD規約の件は知りませんでした。ただ「そうしないと動かない」という意味での「仕様」には当たらないかと考え、類似例として挙げました。
退会済みユーザー

退会済みユーザー

2018/03/30 13:45

とりま、誤訳で確定ですね
guest

回答2

0

ベストアンサー

厳格さに欠ける質問だとは思いますが、翻訳のベンダー試験はえてしてこういうことがあります。
「単一のクラスを書く」という回答よりは「複数のクラスを書く」という回答の方が妥当(単一のクラスが含まれるという集合論的な意味で)ではないかという、問題だと思います。

深く考えたら負けかも。

追記:パッケージ名は慣習に近いルールだったような気がします。仕様でしたっけ?

投稿2018/03/30 11:45

編集2018/03/30 11:48
mike2mike4

総合スコア901

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

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

uranari

2018/03/30 12:04

回答ありがとうございます。 >深く考えたら負けかも。 そうですね、模擬問題なので解答内容だけ憶えておきます。 翻訳なので日本語の厳密さを求めるのはたしかに酷かもしれません…それで落ちたくはありませんが… パッケージ名の件は同じ参考書(Java8の黒本です)に慣習なだけで決まりごとではありません、と明記されていました。
guest

0

確かに雑な和訳だね・・・・

雑な和訳を逆想定してみたけど

// 可能でなければならない (必須)これをベースに考える Must be possible // パッケージにはクラスが含まれていなければなりません // ※ classes 自体は複数形だけど複数のという意味ではない Package contains classes Must possible

誤解が発生しそうな記述が公式にあったな
https://docs.oracle.com/javase/tutorial/java/package/packages.html

You should bundle these classes and the interface in a package for several reasons, including the following: You and other programmers can easily determine that these types are related. You and other programmers know where to find types that can provide graphics-related functions. The names of your types won't conflict with the type names in other packages because the package creates a new namespace. You can allow types within the package to have unrestricted access to one another yet still restrict access for types outside the package.

多分これを誤った解釈したんだろうな

投稿2018/03/30 13:28

編集2018/03/30 13:43
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問