「オブジェクト指向」の考え方の理解

あなたがより良い迅速になるJAVAのアイデアや方法を把握するために、より深いを開発したJavaオブジェクト指向プログラミングの概念を理解できるように、私たちは、言語のJavaオブジェクトとクラスを習得することを学ばなければなりません。マスタークラスとオブジェクトは、Java言語が基盤となっています。だから、質問は、最終的にはオブジェクトとクラスそれが何であるのか?

A:オブジェクトは
オブジェクトについて理解実際には非常に簡単です。私たちの周り、すべてのものは、物理的なものがありますことを、一つの文章にまとめ、オブジェクト座標の一種です。例えば:建築物などのテレビ、車、机、私たち人間は、オブジェクトの種類です。オブジェクトは、二つ、すなわち静的および動的な2つの部分に分割される場合。静的:名前が示すように、移動していない部分を指します。私たちに自分自身を取り、それぞれの人ようにあなたの年齢、性別、身長、体重とは静的です。これらの機能は、すべてのオブジェクトが属性で提供され、プロパティのように要約することができます。ダイナミック:人々は、これらのプロパティは(など、笑って泣いて、歩いて、実行している、)の動作や行動を行うことができる持っていること。オブジェクトのプロパティとオブジェクトを観察することによって対象物を探索するために人間の行動を理解するために。
II:クラス
要約、オブジェクトクラスは、キャリアパッケージのプロパティで、実体一方のクラスの振る舞いは、クラスと呼ばれる同じプロパティと動作を持っています。簡単な例として、鳥。鳥はすべて固有のプロパティ(口、翼、爪)と行動の鳥(飛行、捕食)をカプセル化しています。言ったので、私たちは理解できると信じています。カプセル化、継承、ポリモーフィズム:オブジェクトといえば、焦点は、オブジェクトの三つの基本的な特性を言及しなければなりませんでした。
III:パッケージ
 定義:パブリックインターフェイスにのみオープン隠されたオブジェクトの属性および実装の詳細は、プログラムのプロパティを読み取り、変更するアクセスのレベルを制御します。

 パッケージの目的:セキュリティを強化し、プログラミングを簡素化するには、ユーザーが特定の実装の詳細を知っているが、単に外部インタフェース、特定のアクセス権を通じてクラスのメンバを使用する必要はありません。

 基本的な要件のカプセル化:すべての属性の民営化、取得し、各プロパティのための方法を設定し、パラメータを持つコンストラクタがある場合は、引数なしでコンストラクタを記述する必要があります提供します。多くの場合、クラスの開発で行われるが、テストを書かれている、だけでなく、すべての時々でtoStringメソッドを書き換えることが、これは必要ありません。

4:継承(拡張)
目的:コードの再利用を実現するために。

説明:同じ特性(属性)と動作(メソッド)を持つ2つのクラスは親クラスと同じクラスの部分に抽出することができる場合、クラスは、他の2つの親クラスを継承します。以下のチェンHouzaiクラスは、自動的に親クラスのプロパティとメソッドを持っていますが、特別な注意は、(プライベート)私有財産の親であるとコンストラクタは継承できません。また、サブクラスでは、独自のプロパティとメソッドを書くことができ、それはサブクラスは、親クラスの複製方法、そのメソッドをオーバーライドすることができ、機能を達成するためのプロジェクトを拡張することです。サブクラスは、民間へのアクセスの親クラスのメンバ変数やメソッドを継承することはできません。サブクラスは、同じ名前を持つ親クラスのメンバ変数にちなんで名付けられた親クラスのメソッドをオーバーライドすることができます。時々、私たちはこのような要求を必要とする:我々は隠すが、メンバーがそれらのサブクラスにアクセスできるようにするには、この世界では可能な限り特定の物事を必要としています。これは、あなたが保護された使用する必要がある時間です。

使用法:1は、共通の属性や振る舞いを持つオブジェクトを検索します。

           2、デザインは、クラスの共通の状態と動作を表しています。(親)

           図3は、サブカテゴリは、動作の異なる特定のモードとの行為を許可するか否かを判断します。 - - - - - - 継承(上書き)のカバレッジ。

           4、機会抽象サブクラスの共通動作を探していることにより、より多くのを見つけます。

           5、クラスの継承階層は完了です。

5:多型
 概念:同じメッセージが実際のタイプに適した方法を呼び出す、多くの異なる方法で異なるオブジェクトおよび動作に従って送信されてもよいです。

 実装:

(1)多型実装の継承に基づいて

 主に、親クラスの継承の実装機構に基づいていくつかの方法で、異なる挙動を示すことができる同一の書き換え方法の複数のサブクラスを書き換えるの親クラスと1つ以上のサブクラスを継承します。

(2)マルチステート達成言い訳

いくつかの異なるサブクラスが具現化され、異なるクラスに同じインタフェースメソッドを覆う、スルーである、インターフェイスを実装する、親クラスを反映するために、同じメソッドをオーバーライドを介して継承されます。多型インターフェイスは、インターフェイスは、そのインターフェイスプログラムのクラスの特定のインスタンスを達成するために、基準点でなければなりません。実行時に、対応するメソッドは、オブジェクト参照の実際のタイプに基づいて行われます。継承は、単一継承である、唯一の関連するクラスのセットを有するが、インタフェースは、それが無関係の拡張と組み合わせる関連またはインタフェースのグループを利用することができるよりも多くを達成するために、多重継承することができ、一貫性の外部を提供することができるサービス・インターフェースを提供することができサービス・インターフェース。だから、より良い柔軟性を継承することに関してです。

利点:プログラムの強化された拡張性と保守性。

概要:
外の世界の抽象化へのパッケージの1組成物。
      2.後継者は、抽象的な情報オブジェクトにあります。
      抽象オブジェクトへ3.多態性行動。

ここでは、私たちに拡張された抽象的インターフェイスに関するいくつかの関連情報について少し与えます。

アブストラクト(抽象)
説明:オブジェクト指向の概念では、我々はすべてのオブジェクトがタイプによって記述されていることを知っているが、すべてのクラスは、クラスの場合は、オブジェクトを記述するために使用されていない
に十分な情報が含まれていません特定のターゲットを記述し、そのようなクラスは抽象クラスです。抽象クラスは、多くの場合、問題分析の分野で私たちを表すために使用され、デザイン描かれた抽象化は、異なるルックスのシリーズが、本質的に同じ抽象的な概念コンクリートである、我々は彼らをインスタンス化することはできません(無取ります具体的な
事は)ので、抽象化と呼ばれます。

たとえば、次のようにpublicabstractボイドxuesheng();

 抽象メソッドについて:

    1、非抽象メソッドを有していてもよい、抽象クラスの抽象メソッドが存在してもよいです。    
    2、非抽象クラスは、可能性のあるすべての抽象メソッド。
    図3は、抽象クラスの抽象メソッドがない場合は、このクラスが抽象メソッドがある場合、一方、このクラスは抽象的である必要があり、インスタンス化することができません。

インタフェース(インタフェース)
 コンセプト:古いものと機能強化、クラスメソッドの前提を変更せずに、さらに拡張。

 インタフェースは、要約します:

      JAVAインタフェース1は、キーワード・インターフェースによって定義された特別なタイプです。
      2.インターフェースのみ抽象メソッドを定義することができ、この方法は、本体を持つことができない、それは公共の修正されなければなりません。(インターフェイスメソッドが抽象である)
      3、インタフェースは、変数を定義し、実際に修飾静的最終的な変数であることができます。
      図4に示すように、インターフェースは、静的方法で定義することができません。

 インタフェースの定義:

インターフェイスインターフェイス{パブリック
   静的最終INT I、インターフェースは、共通データ・メンバを持つことができない//のみ静的データメンバが存在し得るが、変更することができない、グローバル静的であり、変更不可能な最終的な、静的最終修正できない、暗黙の意志静的および最終として宣言

   公共ボイドxuesheng1(); //インターフェイスメソッドは抽象メソッドも、それほど抽象的でない変更を行う必要があります

   公共ボイドxuesheng2(); //メソッドのデフォルトの動作のインターフェースに与えることができない、方法を実施していない、すなわち
}


抽象と接触インタフェース
 1、インタフェースは複数のクラスに複数のインタフェースを実装することができ、クラスを実装することができます。
 2、インタフェースはすべてのフィールドがのpublic static final属性をデフォルトとは差を書きません書きに定義されています。
 3、インタフェースメソッドは抽象的であり、抽象パブリック抽象メソッドは、デフォルトを変更しています。他の修飾は書くことができない、修飾子を使用することはできません。
 図4は、いかなるインタフェースコンストラクタが存在しません。
 5、インターフェイスはクラスではありません。具体的には、新しいインターフェイスをインスタンス化するために使用することはできません。しかし、インターフェースは、変数を宣言することができ、変数は、このインタフェースを実装するサブクラスを指すことができます。

       要約すると、抽象クラスは、クラスの機能不全、インターフェイスのみ抽象メソッド宣言と静的データを変更することはできません、どちらインスタンス化の集合です。ある意味では、インタフェースは、クラスが抽象クラスを継承することができるが、このクラスは、複数のインターフェイスを実装することができ、Java言語で抽象クラスの特別な形態は、抽象クラスを継承を表してあります。多くの場合、インターフェイスは確かにあなたが継承されたプロパティの言葉の表現を審議する必要がないことを提供する、抽象クラスを置き換えることができます。

おすすめ

転載: www.cnblogs.com/WinkJie/p/11788959.html