- ベストアンサー
Javaにおけるクラスの定義とは?
- クラスとは、データと操作手順をまとめたオブジェクトの雛型を定義するものです。
- 属性とメゾットを持つオブジェクトをまとめて管理する仕組みです。
- 具体例として、血液型と家事を持つ人間オブジェクトを生成することができます。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
しっくりこないのは、関連性が明確でないからでは? 「家事をする人」をオブジェクトとするなら、家事をするために必要となる属性(ゴム手袋のサイズとか)の方を持たせるべき。 「人」という基本オブジェクトに、「人」の基本属性として血液型を持たせるのはかまわないけど。 つまり、やりたいこと(メソッド)とそれに関連して必要なデータ(フィールド)との組み合わせ、または、逆にデータ(フィールド)とそれを処理するためのメソッドとの組み合わせがオブジェクト(クラス)です。 「データ構造とアルゴリズム」という本があるが、フィールドをどのように持つか=データ構造と、アルゴリズム(データ処理=メソッド)とは、密接に関連するのです。 あまりにも関連性のないものを寄せ集めにすると、利用するとき、拡張や変更したいときに困る。 関連性のくくりを大きくするか小さくするかは、クラスの粒度ともいわれますが、継承で細分化したり、委譲で機能分担したりして、クラス設計時の腕の見せ所でもある。
その他の回答 (2)
- askaaska
- ベストアンサー率35% (1455/4149)
こう考えるともっとシンプルよ。 クラスとは オブジェクトの設計図である この設計図には オブジェクトのデータ(クラス変数)や できること(メソッド)が書かれているの。 ちなみにこの設計図を元に生み出された 生きているオブジェクトをインスタンスと呼ぶのよ。 また、設計図のうち他人に公開している情報を 一覧したものをインターフェースと言うの。
お礼
ありがとうございます! かなりシンプルな説明だったので、大体理解はできました。 あらためて質問します。
まあ、間違いではないと思います。もう少しそれらしく整理すると、だいぶイメージがつかみやすいと思います。 クラス「人間」 フィールド:名前、年齢、住所、血液型、職業、など。 メソッド:仕事する、勉強する、家事をする、食べる、寝る、など。 この人間クラスからインスタンスを作って操作するわけですね。 太郎 = new 人間(); 花子 = new 人間(); そして、仕事したり家事をしたりするときは、それらのインスタンスのメソッドを呼び出します。 太郎.仕事する(); 花子.家事をする(); ただ、これらはまぁ、「たとえ」ですので、厳密で本質的な例とはなりえません。「だいたい、そういうイメージ」ということですね。厳密な定義というなら、もっと専門的な説明になってしまいます。それは、おそらくよくわからないでしょう。まずは、だいたいのイメージでいいのでつかんでおいて、後はとにかく実際に自分でソースコードを書いて、イメージをしっかりしたものにしてください。本などを読んでも、それだけでは理解できないと思います。自分でひたすらコードを書いてください。プログラミングというのは、暗記科目ではなく、「習うより慣れよ」の世界です。
お礼
ありがとうございます! だいたいのイメージはつかめました。 またあらためて質問します。
お礼
ありがとうございます! フィールドとメゾッとの関係の大枠が理解できました。 あらためて質問します。