• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:カプセル化の定義)

カプセル化の定義とは?

このQ&Aのポイント
  • カプセル化とは、属性と操作を一体化させて表現することを指します。属性が非公開属性であれば、それをカプセル化と呼びます。
  • 一般的には、カプセル化は情報隠蔽のみを指すことが多いですが、他の言語では操作まで含めて定義する場合もあります。
  • カプセル化の定義には個人個人の解釈や考え方によるズレがある場合があります。Javaの立場から一般的な定義を示せば参考になるでしょう。

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

  • ベストアンサー
  • mintia007
  • ベストアンサー率59% (16/27)
回答No.1

http://ja.wikipedia.org/wiki/%E3%82%AB%E3%83%97%E3%82%BB%E3%83%AB%E5%8C%96 私も上記URLの行ってる事かと思います。 更に発展してbearnsという考えになります。 以上、ご参考まで。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

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

カプセル化をシンプルに言い表すと 必要なもののみ公開してそれ以外を公開しない ってことよ。 例えば「車」というカプセルがあるとするわ。 公開するのは ・ハンドル ・アクセル ・ブレーキ ・スピードメーター ね。(もっといろいろあるけどめんどうなので省略) アクセルを踏めば動き出してブレーキを踏めば止まる ハンドルを動かせば方向を変えるし、現在の速度はスピードメーターで分かる。 このカプセルの利用者はアクセルを踏めば動き出すっていうことだけ知っていれば使えるわ。 その内部でどんな処理をしていようが関係ないのよ。 ちなみに従来の手続き型言語だと公開するのは ・方向を変える ・動かす ・止める ・速度を得る になるわね。 この辺が手続き型言語とオブジェクト指向言語の違いね。

全文を見る
すると、全ての回答が全文表示されます。
回答No.2

ぜひ以下のテキストの Chap-8(Expanding Our Horizons) を読む事を薦めます。 Alan Shalloway, James R. Trott, Design Patterns Explained: A New Perspective on Object-Oriented Design (2nd Edition) (October 22, 2004) p.119~ Encapsulatoin: The Traditional View        and the New View

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • オブジェクト指向の「カプセル化」について

    >>@ITより http://www.atmarkit.co.jp/fjava/devs/object02/fig2_1.gif オブジェクトが、「固有の状態」と「振る舞い」をカプセル化して隠ぺいしている >>MSより メソッド (振る舞い) とプロパティ (属性) をインタフェースとして備えています @ITの記事では、メソッド自体(振る舞い)もカプセル化により隠ぺいされていると理解したのですが、 MSではインターフェイスとしてメソッドとプロパティが公開されていると説明されていました。 カプセル化では、インターフェイスとして何が公開されているのか、 隠ぺいされているものは何なのか。以上の二点がわかりません。 ちなみに各記事のURLはこちらです。 http://www.microsoft.com/japan/msdn/academic/Articles/csharp/02/csharp2.aspx http://www.atmarkit.co.jp/im/carc/serial/object02/object02.html

  • JavaプログラマとしてのXML

    Javaであるプログラムを作成するのにXMLを使おうか考えていますが、一般的に言ってJavaにとってXMLを使用する利点って何ですか? そもそも独自に専用のマークアップ言語を定義するのとXMLを違いが分かりません。その点を踏まえて回答お願いします。

    • ベストアンサー
    • Java
  • 酸を定義する意味

    ものすごく大雑把な質問ですみません 酸の定義はwikipediaによると一般に、プロトン (H+)を与える、または電子対を受け取る化学種。とありますがなぜプロトンに注目するのでしょうか? 個人的に後者の定義の方が体型的でしっくりくるのですが・・・ すこし話しが変わりますが最近電位ph図なるものを聞いたのですが、何故これもまたpHに注目するのでしょうか? 金属の酸化還元反応は、その金属と反応する溶液のイオン化傾向?でいくらでも変わってくるのではないでしょうか? 当方化学を全然理解していないので的外れなことを言っていると思われますが、どうかよろしくお願いします

  • プログラミング言語 スキルアップ

    IT業界プログラミング言語について質問です。 よくプログラミング言語は一つの言語の理解を深くした方が良いという意見をネット上で耳にしますがJavaをプライベートで狭く深く勉強して行けば他の言語(php,JavaScript,C#)なども理解が深まるでしょうか? もちろんバランスよく広く深く勉強していくのが良いと思いますが狭く深く勉強する言語としてはJavaが適していますでしょうか? また絶対的な意見というのはなく個人の主観になった意見でも構わないのですが一番スキルアップに繋がる言語等あれば教えて頂きたいです。 質問が多いかも知れませんがJavaは「.jar」ファイルにすればHTMLなどに埋め込んだりできるのでしょうか? 答えられる範囲で構いません。 浅はかな質問かも知れませんが答えて頂けると幸いです。

    • ベストアンサー
    • Java
  • 私の場合、C++とJavaのどちらの言語でクラス取るべき?

    今度、データ構造のクラスを取ります。 でもその言語がC++とJavaで選べます。 私自身はBASIC, C, Fortran, Assembly, C++と習ってきました。 C++の初級は余裕だったのですが(Cの知識が結構応用できた)、 中級でのclassの概念(base, derivedなど)は 今一つ理解できてないと思います(グレードはBでした)。 例文があれば、いろんなところから貼り合わせ、なんとか動くようには出来るレベルです(^^ゞ 教授は「大丈夫、C++を理解していればJavaは出来る」と言いますし、 ここのOKWebの過去ログにもそんな記述があるのですが、 未知の言語(Java)で初級コースならまだしも データ構造(配列やらリストやら)を扱うっていうのは厳しいような…うーん…。 …と言いつつもC++でも自信ないし…うーん…。 Javaは人気があるのは知っていますし、新しい言語に興味もあるのですけど…うーん…。 最近、初級コースはJavaに切り替わったそうです… でも折角C++で必修科目を埋めたのにJavaで取り直すのはちょっと…うーん…。 こんな私はどちらの言語でデータ構造のクラスを取ればよいでしょうか? 両方の言語をご存知の方、アドヴァイスをください。

  • 外部スキーマ定義書とは?

    外部スキーマは、 データベースの構造(スキーマ)のうち、 ユーザー側やアプリケーション側から見た構造のことであると認識しています。 では、 以下の内容は、外部スキーマには該当しないということで良いのでしょうか? (クライアント&サーバの構成で例を記載します) 1.非表示の項目 2.クライアント側での画面モード(登録モード、更新モード)や、 データのステータス(申請中データ、承認済みデータ、差し戻しデータ)などの制御情報  (※これらはサーバサイドで必要なデータであるケース) 3.クライアントから、  サーバにリクエストするときに使う、  データクラス  (画面に出る項目はもちろん外部スキーマの範囲だと思いますが、   例えば画面に出てこない   「登録操作を行った日時」や、   画面では非表示にしている、   「申請ルート情報」など) **************** 外部スキーマ定義書は、 以下のどちらの目的であることが一般的なのでしょうか? 【A】 画面定義書として使うプロジェクト 【B】 「サーバサイドの開発担当者」と 「クライアントサイドの開発担当者」の 「インタフェースで使うデータクラスの定義」として、 クライアントから渡して貰いたいデータが何なのかの定義として、 「疎通」で齟齬を起こさないために使うプロジェクト 一般的にはどっちなのか、わかりかねています。 宜しくお願い致します。

    • ベストアンサー
    • Java
  • ★C++(DirectX) vs Java(Java3D)★

    公開頒布するゲームの作成を考えていますが,その前に・・・ 手段としてJava+Java3Dで行う方法とC言語+DirectXでプログラムを行う方法があるようで・・・ 一般に売られているコンピュータゲームにはDirectXを含むものが多いため,後者の組み合わせでゲームを作っているのかなと勝手に思っていますが,実際のところどうなんでしょうか? 改ざんを防ぐためにはDirectXを使ったほうが良い等があるのでしょうか? ちなみに,JavaもC言語も学習していますし,作るゲームのジャンル(RPG,STG)などは考えず,さまざまなゲーム作成をしたいと考えています.

  • IT業界に入る場合の資格・要するスキル

    C言語やり始めて、2・3月です。 それで、来年基本情報技術者資格を受けようと考えています。 一般に考えて、例えば、C言語での開発に携わる場合に 基本情報技術者資格だけ有りの場合どう判断をされるのでしょうか? 資格有はそれなりの評価をされるのでしょうが、C言語やJAVA言語に関してはスクールには通わずにする予定です。 またC言語やJAVA言語を使ったプログラム・ゲームの提出では どう判断される可能性があるのでしょうか? 質問内容が突っ込んだ内容ですができましたらよろしくお願いします。

  • プライバシーの侵害について教えて下さい

    個人情報=プライバシー?と考えていいのでしょうか? 個人情報を本人の許可なく暴いたり、情報操作することをプライバシーの侵害?_と呼ぶのかと思っていますが どうなのでしょうか? プライバシーの侵害に関する正しい定義を教えてください。 また、個人情報とはなにか教えて下さい。

  • char型について【初心者です】

    プログラミング初心者です。 char型について質問です。 一般的にchar型とは文字列の定義という風に教えてもらったことがあるのですが、言語やデータベースによってchar型の定義は違うものなのでしょうか? 例えば、javaでは   char a = 'あ' というように、文字が全角一文字しか定義できないのに対して、SQLでテーブルを定義するときでは「長さ:10」というように文字を一文字以上格納できるので、大変疑問です。(この考え方が間違っているのでしょうか?) SQLの「長さ」というのも具体的に何の長さなのか分かりません。 かなりの初心者と思われるでしょうが分かりやすい回答を頂きたく思います。 よろしくお願いします。