• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:javaにおけるクラスの定義)

Javaにおけるクラスの定義とは?

このQ&Aのポイント
  • クラスとは、データと操作手順をまとめたオブジェクトの雛型を定義するものです。
  • 属性とメゾットを持つオブジェクトをまとめて管理する仕組みです。
  • 具体例として、血液型と家事を持つ人間オブジェクトを生成することができます。

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

  • ベストアンサー
  • mpro-gram
  • ベストアンサー率74% (170/228)
回答No.3

しっくりこないのは、関連性が明確でないからでは? 「家事をする人」をオブジェクトとするなら、家事をするために必要となる属性(ゴム手袋のサイズとか)の方を持たせるべき。 「人」という基本オブジェクトに、「人」の基本属性として血液型を持たせるのはかまわないけど。 つまり、やりたいこと(メソッド)とそれに関連して必要なデータ(フィールド)との組み合わせ、または、逆にデータ(フィールド)とそれを処理するためのメソッドとの組み合わせがオブジェクト(クラス)です。 「データ構造とアルゴリズム」という本があるが、フィールドをどのように持つか=データ構造と、アルゴリズム(データ処理=メソッド)とは、密接に関連するのです。 あまりにも関連性のないものを寄せ集めにすると、利用するとき、拡張や変更したいときに困る。 関連性のくくりを大きくするか小さくするかは、クラスの粒度ともいわれますが、継承で細分化したり、委譲で機能分担したりして、クラス設計時の腕の見せ所でもある。

wanwannakuyo
質問者

お礼

ありがとうございます! フィールドとメゾッとの関係の大枠が理解できました。 あらためて質問します。

その他の回答 (2)

  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.2

こう考えるともっとシンプルよ。 クラスとは オブジェクトの設計図である この設計図には オブジェクトのデータ(クラス変数)や できること(メソッド)が書かれているの。 ちなみにこの設計図を元に生み出された 生きているオブジェクトをインスタンスと呼ぶのよ。 また、設計図のうち他人に公開している情報を 一覧したものをインターフェースと言うの。

wanwannakuyo
質問者

お礼

ありがとうございます! かなりシンプルな説明だったので、大体理解はできました。 あらためて質問します。

noname#161640
noname#161640
回答No.1

まあ、間違いではないと思います。もう少しそれらしく整理すると、だいぶイメージがつかみやすいと思います。 クラス「人間」 フィールド:名前、年齢、住所、血液型、職業、など。 メソッド:仕事する、勉強する、家事をする、食べる、寝る、など。 この人間クラスからインスタンスを作って操作するわけですね。 太郎 = new 人間(); 花子 = new 人間(); そして、仕事したり家事をしたりするときは、それらのインスタンスのメソッドを呼び出します。 太郎.仕事する(); 花子.家事をする(); ただ、これらはまぁ、「たとえ」ですので、厳密で本質的な例とはなりえません。「だいたい、そういうイメージ」ということですね。厳密な定義というなら、もっと専門的な説明になってしまいます。それは、おそらくよくわからないでしょう。まずは、だいたいのイメージでいいのでつかんでおいて、後はとにかく実際に自分でソースコードを書いて、イメージをしっかりしたものにしてください。本などを読んでも、それだけでは理解できないと思います。自分でひたすらコードを書いてください。プログラミングというのは、暗記科目ではなく、「習うより慣れよ」の世界です。

wanwannakuyo
質問者

お礼

ありがとうございます! だいたいのイメージはつかめました。 またあらためて質問します。