• ベストアンサー

クラスとは何?と聞かれたら

お世話になります。 「オブジェクト指向におけるクラスとは何ですか?」 という質問に対して、 「任意に定義できる新しい型のことです。そして基本型とは違って、任意の数の属性、任意の数のふるまいを持つことができます。」 という答えは、 1. 間違いになるでしょうか? 2. そう尋ねられた場合はどう答えますか? よろしくご教授ください。

noname#21585
noname#21585
  • Java
  • 回答数5
  • ありがとう数14

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

  • ベストアンサー
回答No.4

>1. 間違いになるでしょうか? 単なる質問に対する答えでは、それでいいと思いますけど、質問者さんの学習レベルによっては若干違ってくるかも知れませんね。それなりにJavaの勉強をされてきた人ならば、基本型(=クラスライブラリ)、属性(=フィールド)、ふるまい(=メソッド)と、それぞれ置き換えて解釈できると思いますが、それすら知らない初心者の方々にとっては、立て続けに質問されそうですし…。 >2. そう尋ねられた場合はどう答えますか? 他の言語による経験者の方々を想定すると、以下のようになるかと。 「『フィールド』と呼ばれる変数と、『メソッド』と呼ばれる関数が定義されているひな型のようなもの。単に定義されているだけなので、それだけでは利用できず、new演算子によって生成されたインスタンスと関連付けて使用される。ただし、それぞれの『フィールド』や『メソッド』にstatic修飾子がある場合には、各々、クラス変数やクラスメソッドと呼ばれ、インスタンス化しなくてもクラス名による使用が可能となる。」 それから、設計などと絡めると以下のようにもなりますね。 「要求分析の工程によって、ユースケース図やシナリオ、イベントフローなどによりモデリングされたオブジェクトを、抽象化したもの。後に、インスタンス化して使用する際の元となる、設計図のようなもの。」 ポイントとしては、プログラマーからしたらクラス図やシーケンス図などによって、元々クラスそのものが存在しているかのような印象を受けがちですが、実際にはそうではなく、誰かがプログラミングの工程までに、デザインパターンなどの設計手法なども採り入れながら、詳細についてドキュメント化してくれているわけなんですよね。

参考URL:
http://e-words.jp/w/E382AFE383A9E382B9.html

その他の回答 (4)

  • suseimei
  • ベストアンサー率35% (17/48)
回答No.5

相手のレベルに依存すると思います。 詳細は参考URLに譲ります。

参考URL:
http://www.ttoyota.com/php/no1contentsadd1.php
  • bnosuke
  • ベストアンサー率21% (4/19)
回答No.3

こんばんは。 最近類似の質問に回答したので、ここでも回答させていただきます。 1.間違いではないでしょう 2.「ある存在や事象を表現する値の集合に、それを操作する手法を付加したもの」 以上が私の見解です。 どうぞ参考にしてください。

  • yuki22
  • ベストアンサー率28% (8/28)
回答No.2

こんばんはです^^ 簡単に。 インスタンス化し、それぞれ必要な値を返してくれるメソッドを持ってるもの。 だと思います。 難しく言ってしまえばもっとあるかもですw

  • MrBan
  • ベストアンサー率53% (331/615)
回答No.1

私見100%で書いてますが、 「オブジェクト指向におけるクラスとは何ですか?」 Javaに限られないように見えるのでその前提で。 1. 間違ってはいないと思うが、正解とも言いにくい。かな。 2. 操作を通じて単一またはいくつかの責務を果たす情報の基本単位。 その必要に応じて状態や識別性等の属性をもつ、とか。 # 「オブジェクト指向におけるクラス」の本質は責務の単位だと思うので、 # 簡単に書くなら継承とか情報隠蔽とか説明するよりはこんな感じ?

関連するQ&A

  • 僕の持ってるクラスの概念は正しいですか?

    僕の持ってる下記のクラスの概念は正しいですか? クラスとは、データ(「属性」または「フィールド」ともいう)とその操作手順であるメソッド(「振る舞い」、「動作」、「機能」ともいう)をまとめたオブジェクトの雛型(形式・様式を示す見本)を定義したもの。    クラスとは、いわば、何かを実行する物体(オブジェクト)の設計図のようなもの。何かを実行する物体というのは、例えば車をオブジェクトに例えると、「走る」,「車を止める」,「ライトをつける」ということを実行するが、クラスというのはその車(オブジェクト)の設計図。 また設計図だから、クラスの中には具体的に「何をさせたいのか」(車であれば、「走る」,「ライトをつける」等)を記述していくが、これがメソッドである。 また、車であれば、ナンバーや車種等の属性的情報があるが、このようにオブジェクトが保持する属性的情報がフィールドである。 また、この設計図を元に生み出された、実際に動作しているオブジェクトをインスタンスと呼ぶ。 車であれば、実際に走ったり止まったりライトをつけてるといったように、実際に動作しているオブジェクトがインスタンス。 これに関連し、オブジェクトとは、ソフトウェアが扱おうとしている現実世界に存在する物理的あるいは抽象的な実体を、属性(データ、フィールド)とメソッドの集合としてモデル化し、コンピュータ上に再現したもの。

    • ベストアンサー
    • Java
  • クラス?オブジェクト?インスタンス?何がなんだか・

    一般的なオブジェクト指向の 定義として下記で合っているのでしょうか お願いします クラス:第2実体(人間) インスタンス:第1実体(例:山田) オブジェクト:色々なインスタンスをさして、抽象的に総称としてオブジェクト 例えば・・クラス:人間、インスタンス:山田 クラス:犬、インスタンス:ゴン 違うクラスのインスタンスをまとめて呼ぶ際にオブジェクト? よく分からなくなっています、よろしくお願いします

  • javaにおけるクラスの定義

    クラスとは「データ(属性)とその操作手順であるメソッドをまとめたオブジェクトの雛型(形式・様式を示す見本)を定義したもの。」という意味であるようですが、これは具体的にどういうことでしょうか? 私なりに考えてみたので、それが正しいかどうか判断してください。その上で、より本質的且つわかりやすい例えがあればご教示ください!(私はプログラミング初心者なので、それを念頭に置いた上で、より分かりやすい解説お願いします。) 上記の定義をもとにした私が考えるクラスの具体例 →例えば、属性として「血液型」、メゾットとして「家事」というオブジェクトの雛形を定義すると、Aさん(血液型A)、Bさん(血液型B)、c(血液型o)さん、そして家事をする主婦としての人間オブジェクトが生成できる。このオブジェクトをまとめて管理する仕組みがクラス。このクラスに属しているオブジェクトは、必ず属性として「血液型」、「家事」としてメゾットを持つ。 私の例えは、なんかいまいちしっくりきません。 もっとわかりやすく且つ厳密で本質的なご教示お願いします!

    • ベストアンサー
    • Java
  • クラス設計について

    UMLの本でクラス図の描き方を勉強しています。クラス図を描くためには実際にオブジェクト指向で開発する場合にどのようにクラスを設計するかがわからないのとかけないので、Javaのカテゴリで質問させて頂きます。(未だにクラスをどのように設計するのか、わかっていないので。。) 例えば、以下のような大学の授業登録システムがあったとします。 (1)共通のログイン画面に対して、生徒、先生、アドミニストレータが個々のID・パスワードでログイン出来る。それぞれ出来る操作は異なる。 (2)生徒は、授業の登録、削除が行える。また、自分の登録した授業のスケジュールを印刷することが出来る。 (3)先生は、生徒の評価が行える。自分の持っている授業のスケジュールを印刷出来る。 (4)アドミニストレータは、授業の登録、削除、ログインユーザの登録、削除を行える。 とあった場合、どのようなクラス(属性&操作)を定義しますか?勿論、答えはたくさんあると思いますし、「一般的な答え」というものも存在しないのかも知れませんが、もしご意見が聞けると幸いです。 ※「UMLがわかる」という本ではコントローラとエンティティでクラスを作っているようで参考になったのですが一例しかなかったので上記の場合だとどうなるのかが知りたくて質問致しました。

    • ベストアンサー
    • Java
  • 関数をクラス化する目安とは・・?

    C++ビギナーです。 見よう見まねですが、おおまかな機能毎に1ヘッダー1ソースを作り オブジェクト指向の真似事をやっているのですが、 新たにクラスを作るとなると、 1つの関数を作るのに定義やコンストラクタを一々作らなければならないのに対して、 クラスにせず、関数単体ならぱっと書けて 使うときも直に呼び出すだけでとても楽なのですが、 1.関数をクラス化するメリットはどのような場合に有るのでしょうか? 2.クラス化すべき場合、すべきでない場合 というのが有るのでしょうか? 3.クラス化していない関数が点在するのは良くないのでしょうか? おおまかな事で構いませんので、目安を教えて頂けると幸いです。

  • Java:クラスをたくさん使ったプログラミング?

    Java言語勉強中のものです。 Eclipseをつかっています。 初心者ですので、易しい言葉でご回答いただければ幸いです。 Javaの基礎についてひととおり勉強しました。 オブジェクト指向についても、だいたい・・なんとなくは理解できていると思います。 ただ、自分で作成するときに、 うまくオブジェクト指向を取り入れたプログラミングができません。 なんだかあっちこっちのものを呼び出してきてとてもややこしいです。 クラスがたくさんつかわれているプログラムは、 ほかの人がつくったプログラムをなんとかがんばって読む、というのが精一杯です。 自分ではとても思いつかない構造ばかりです。 あっちこっちからよんできているので、図やらリストやらを書いて 本当に「なんとか」理解できた、というレベルです。 クラスが5個以上になると正直もう嫌だってなります。。実用レベルにはまだまだ至っていません。 本当の意味でオブジェクト指向を理解できていないのかもしれません。 どうすればそういった、オブジェクト指向をとりいれたプログラムが書けるようになるのでしょうか? いろんなプログラムを見る、数をこなすことでしょうか? 何かおすすめの参考書や、 「こういう考え方をすれば・・・」というものがありましたら教えてください。 よろしくお願いいたします。

    • ベストアンサー
    • Java
  • OpenLDAP 補助クラスについて

    LDAPユーザーでsamba+メールをできるようにしたいと想い 以下のクラス7つを使用することにしました。 objectClass: top objectClass: person objectClass: organizationalPerson objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount objectClass: sambaSamAccount ただ、今回これにsquidを利用できるようにしようと考えたのですが、 上のクラスの組み合わせではhost属性を定義することができません。 補助クラスでhost属性が利用できるものがあれば それを利用しhost属性を定義したいと考えているのですが、 何のクラスを定義すればいいのかがわかりません。 host属性を利用するには、何のクラスを利用したらいいのか ご存知の方がいらっしゃいましたらご教授のほうよろしくお願いできないでしょうか? また、Javaみたいにクラスを調べることができる(http://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/api/index.html)このようなLDAPのページがあるのでしょうか? ご存知の方がいらっしゃいましたらご教授のほうよろしくお願いできないでしょうか?

  • 【C#】フォームクラスと他クラスとの連携について

    C#を勉強し始めたばかりの者です。 オブジェクト指向言語が初めてなので、オブジェクト指向的考え方が出来てないゆえの質問だとは思うのですが・・・。 質問内容ですが、フォームクラスと他のクラスとの連携方法がわかりません。 具体的に言いますと、フォームクラスで別のAというクラスを宣言し、そのクラスのB()メソッドを実行したときに中で発生した例外メッセージをフォームのコントロールで表示したい、という場合、どうすればよいのでしょうか? Doメソッドで例外メッセージをstringとして返し、それをフォームクラスの方で処理するしかないのでしょうか? お知恵を貸してください。よろしくお願いします。

  • クラス変数について質問

    Javaのオブジェクト指向を解説した参考書で現在勉強しているのですが、その参考書のある問題の答えの解説として「クラス変数は参照変数なので参照以外を代入できません」と書いてありました。 でも、例えば、static int n=0と書けば、0をnに代入できます。 因みに、「クラス型の変数」は参照しか代入できないのはわかっています。 よって「クラス変数」は誤植で、正しくは「クラス型変数」なのでしょうか?

    • ベストアンサー
    • Java
  • クラスの継承の仕方

    後学のため、JavaScriptについて勉強しています。 JavaScriptでもクラス(のようなもの)を定義してオブジェクトを作成できるようですが、サブクラスを定義する方法が分かりません。メソッドやコンストラクタはどのように継承すればよいのでしょうか。 お分かりの方おられましたら、ご教授のほどお願い致します。

専門家に質問してみよう