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

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

ただいまの
回答率

90.76%

  • Java

    13176questions

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

わかりません、教えてください

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 208

nontan

score 2

Carというオブジェクトを返す、「製造する」というメソッドがあり、車種名を引数とする

とある問題を解いていてその問題の条件が
・「車の工場」を表すクラス
・工場名のアクセッサがある
・住所のアクセッサがある
・Carというオブジェクトを返す、「製造する」というメソッドがあり、車種名を引数とする
次の条件を満たすこと
・住所と工場名、車種名はそれぞれ文字列型
・住所と工場名のアクセッサは、それぞれ中の処理を記述する
・「製造する」というメソッドの中の処理は不要
・クラス名、フィールド名、メソッド名は任意とするが、ネーミングルールに従っている
・製造するというメソッドでは、「return null;」を最後に記述する

というものなのですが工場名や住所のアクセッサは何となくわかるのですが最後のCarというオブジェクトのところがインターネット等で調べてもわかりませんでしたので教えていただきたいと思います。

 今出来上がっているところまでのソースコード

public class FactoryName{     //こちらのコードが工場の名前のクラスです
     private String name();
     public String getname(){
           return name;
}
        pubric voi setName(String name){
         this.name = name;
}
}


public class FactoryAddress{   //こちらのコードが住所のクラスです
        private String name;
        public String getName(){
         return name;
   }
           public void setName(String name){
         this.name = name;
}
}


class CarFactory{                  //ここからがメインの車の工場のクラスです
       public static void main(String[] args){
         FactoryName honda = new FactoryName();
         FactoryAddress tokyo = new FactoryAddress();
            honda.setName = "本田"; 
            tokyo.setName = "東京"; //こちらの名前はあくまで仮の名前です
当方初心者のためよければなぜそのような処理になるのかまで教えていただけるとこれからの問題に対してある程度理解ができるようになると思うのでできれば教えてください。

問題の修正に関してご指摘してくださった方々、ありがとうございます。
以後、気を付けてまいります

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • 退会済みユーザー

    2018/04/13 13:30

    複数のユーザーから「やってほしいことだけを記載した丸投げの質問」という意見がありました
    「質問を編集する」ボタンから編集を行い、調査したこと・試したことを記入していただくと、回答が得られやすくなります。

  • mts10806

    2018/04/13 13:33

    タイトルは要件を書いて下さい。 https://teratail.com/help/question-tips#questionTips3-1

    キャンセル

  • fuzzball

    2018/04/13 13:37

    インデントが崩れているのを直して下さい。

    キャンセル

回答 2

checkベストアンサー

+3

『工場名』と『住所』は、クラスに切り分ける必要がないと思います。

class CarFactory {
    private String name;
    private String address;

    定義すべきメソッド:
        ・ nameのアクセサ
        ・ addressのアクセサ

    Car 製造する(String 車種名) {
        nullを返す
    }
}

Carクラスはとりあえず形だけ組んでおけば良いかと。

class Car {
}

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/04/13 13:47

    ご丁寧な回答ありがとうございます。
    もしよろしければこれからの自分の参考にしたいのでなぜクラスに切り分ける必要がないのかを教えていただけると助かります

    キャンセル

  • 2018/04/13 13:53

    mtn10806さんが触れておられるように、工場名や住所は工場の持ち物(属性)だからです。
    名前・住所・電話番号などを名刺にまとめて書くのと似て、その方が扱いが自然なのです。

    キャンセル

  • 2018/04/13 13:58

    なるほど・・・
    わかりやすい回答ありがとうございます!

    キャンセル

+2

そもそもオブジェクト指向の考え方をきちんと押さえられた方がいいように思います。
確かに車ってどのプログラミング言語においてもオブジェクト指向学ぶ際には出てきますよね(あまり現実的ではないという指摘もありますが。)

ひとまず「車を構成する要素」として構造を考えられてはいかがでしょうか?
上から順に考えるのではなく、例えば下記のような考え方

  1. 車を作る
  2. 車のどの車種?
  3. その車種はどこで作られている?
  4. 工場はどこにある?

と考えていくと「工場名」「工場の住所」をそれぞれオブジェクトにするのは矛盾が発生してくるはず。
なぜなら、本来の姿は、車が作られている工場があり工場に住所がある、わけですから。

下記は古い記事ではありますが、車が例になっているので考え方は近いと思います

Carというオブジェクトを返す、「製造する」というメソッドがあり、車種名を引数とする

私の方ではCarオブジェクトには車種・工場→工場の住所というデータを持っている
という風に理解しました。

条件を1つずつ上からこなしていくのではなく、1つの設計図のようなものを手書きでも良いので作り、
「最終的な結果は何か?」から作り始めたほうが、全体のイメージを掴みやすいのではないかと思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

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

  • ただいまの回答率 90.76%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 受付中

    明解Java入門編演習9−3

    この演習はDayクラスを使わずに行う演習なのでしょうか? Dayクラスを使うのなら、銀行口座クラスにtoStringメソッドを作る理由が分かりません。 また、もしDayクラスを

  • 解決済

    メソッドを使ったプログラムを作りたいです

    前提・実現したいこと Javaのメソッドを使う問題を解いています。 問題は以下の通りです。 ↓ 好物を元に動物の名前と特徴を出力するプログラム  ・作成するクラス 

  • 解決済

    JFrameでのJPanelの切り替えについて

    前提・実現したいこと (例)Java(UIはJFrame)でゲームを作っているのですが、JPanelの切り替えをJFrameで行おうとしています。 しかし、JPanelの切り替

  • 解決済

    jacksonを使ってWebAPIから取り出したJSONファイルをJavaオブジェクトにしたい

    jacksonを使ってWebAPIから取り出したJSONファイルをJavaオブジェクトにしたい Javaでe-Statという統計のWebAPIから値を取り出したいと考えています。

  • 解決済

    継承時のthisの働き

    こんにちは。現在Javaについて勉強しています。 今回はその継承に関して、調べてもよくわからない点があったので質問させてください。 見て頂きたいのは以下のコードです。 clas

  • 受付中

    他メソッドにwhile文のbreakやcontinueを渡す方法

    先日の質問ではここでお世話になりました。 銀行の簡単なプログラムを作っています。 入金、出金、振込と選択肢を与えて、各処理を終わったら利用確認メソッドが呼び出されはい、なら最初から

  • 解決済

    javaクラスの初歩的な質問

    下記の様なクラスがあった場合、javaならではの(?)スマートな書き方ってあるのでしょうか。 funcPre関数の重複を簡略化できるのかなと言う質問になります。 class S

  • 解決済

    オブジェクトを配列に入れて各要素を表示をスマートにやりたい

     前提・実現したいこと 五人の名前と、数学、英語、物理のテストの結果をそれぞれ表示したうえで集計し、平均を出すプログラムを書いています。 方針としては、まず一人一人のオブジェク

同じタグがついた質問を見る

  • Java

    13176questions

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