Javaのオブジェクト指向A
1、オブジェクト指向の考え方を導入
以前我々は、アレイは、複数のアレイを横断する必要がある場合、我々はトラバースするために必要に応じて、メソッドにパッケージングコードを横断することができ、コードの再利用性を向上させるために適切なメソッドを呼び出すために述べています。配列トラバーサルの対応する方法では、このようなほとんどの値へのアクセスなどの要件に基づいて増加し続け、他の値は、逆に、同じ機能が、これらの中にパッケージングする必要があります。このパッケージには、より多くの方法を見つけるために続けるので、これらの方法は、それをカプセル化を続行できるようにしたかったのだろうか?
私たちは、このクラスを見つけて、ために、アレイの将来の操作は、具体的な方法を探していないか、包装のこの方法に複数のクラスの使用を検討するように、これを使用し、保存することができる方法を説明するためのクラスの前面から知っていますメソッドクラス。これは、オブジェクト指向プログラミングのアイデアです。
2、プロセス指向の考え方の概要
単一、または単純な需要は、我々が行くとステップ動作によるステップは問題ありません、そして効率も高価です。需要の増加に伴い、機能を変更し、ステップごとに多くの問題に直面することが判明し、パッケージが異なる機能に応じたとき、あなたは思考、缶これらのプロシージャと関数は、パッケージの間に開始する、異なるパッケージも、同様の機能と一緒にパッケージ。このような構造は、多くのことをクリアします。それに対応するクラスを見つけるために使用する場合。これは、オブジェクト指向の考え方です。
オブジェクト指向の考え方の概要
オブジェクト指向プログラミングは、プロセス指向の考え方に基づいています
オブジェクト指向機能
思考の私たちの習慣に沿ったアイデアよりあります
複雑な物事を単純化することができます
私たちは、エグゼクティブディレクターになります
役割の変化
「プロセス指向」は、(プロシージャ指向)プロセス中心プログラムのアイデアです。
「オブジェクト指向」(OOと呼ばれるオブジェクト指向は、)のものを中心とプログラミングのアイデアの一種です。
図3に示すように、オブジェクト指向の例
コンピュータを購入します:
プロセス指向:コンピュータの私の理解では - 私は彼らのニーズを理解する - 対応するパラメータ情報を見つけるために - バーゲン - - SEGのコンピュータに行く買いコンピュータ
オブジェクト指向:私は、私はコンピュータを購入したい知っている - 私が買いに行くモニター - 買いバックモニター
ランドリー:
プロセス指向:オフの服 - 少量の水を加える - - いくつかの粉末洗剤を入れて - ボウルを見つけるに投げ服 - RUB A RUB - きれいな服 - 絞るには - ハングアップ
オブジェクト指向:服オフ - 自動洗濯機のターン - への鍵 - - でスローハングアップ
ディナー:
プロセス指向:食べ物を買うためにスーパーマーケットに行く - 野菜を選ぶ - 野菜 - 野菜 - クッキング - いっぱい - 食べます
オブジェクト指向:夕食のためにレストラン、あなたは - ウェイター(アラカルト) - シェフ(クッキング) - ウェイター(Duancai) - 食べます
自家製のものは、洗濯機を購入し、あまりにも不経済ホテルに行くので、オブジェクトを見つけます。
しかし、あなたは、私とあなたの将来4000を学習することはありません、あなたはオブジェクト8000です。
図4は、オブジェクト指向開発は、設計は、特徴
オブジェクト指向開発
これは、コマンドオブジェクトは、物事を行う、常にオブジェクト、使用オブジェクトを作成することです。
オブジェクト指向設計
実際には、オブジェクトの管理と保守の間の関係。
OOP
パッケージ(封止)
承継(継承)
ポリモーフィズム(多型)
5、クラスとオブジェクトの関係
プロパティは、物事の説明です
この動作は、何ができるかの事です
クラス:関連属性とのグループの行動の集合です
オブジェクト:このようなことの具体的な症状
例えば:
クラス:学生
オブジェクト:オブジェクトがチームのリーダーであります
クラス:青写真またはオブジェクトを作成するためのテンプレートとして理解することができ、それは抽象的な概念です。
オブジェクト:クラスは、モデル、コンクリートのクラスの特定のインスタンスのために作成されています。
6、クラス定義:
現実の世界で物事
属性の人の身長、体重、など
アクターは食べる、などを学ぶことができます
Javaクラスは、あまりにも物事を記述するために使用しました
物事のメンバ変数のプロパティです
メンバーの事を行うことです
実際には、クラス定義のクラスメンバー(メンバー変数とメンバー・メソッド)の定義
1、メンバ変数と以前に定義された変数は同じであるが、位置が変化しました。クラス、メソッドの外側。
2は、以前に定義された方法及び方法のメンバーは同じですが、静的を取り除く、その後、後に詳細に静的の役割を説明します。
7.クラスとオブジェクトケース
学生カテゴリ
どのように定義すること
ステップ解析によるステップのように、物事の手順に従い
使い方
オブジェクトを作成します。
オブジェクトクラス名name =新しいクラス名();
オブジェクト名。メンバ変数
オブジェクト名。メンバー方法
人間を定義します。
人間の使用:
8、メモリマップ
オブジェクト変数は、実際のオブジェクトの内容ではなく、どこオブジェクトヒープメモリアドレス保存、場所によってアドレスは、ヒープ内のオブジェクトの中に見つけることができます。、操作の値を割り当てることができます。
9、パラメータ問題にパラメータの形式で:()
パラメータとしてロングベーシックタイプ
実際のパラメータ値は仮パラメータに割り当てられます。
パラメータとしての文字列の参照タイプ
これは、仮パラメータ(基準)に割り当てられた実際のパラメータ値(基準)となります。
参照型パラメータが参照するアドレスの割り当てのヒープに対処する能力を持っているので、役割はあなたにもヒープアドレスにアクセスすることができ、同じです。
10、匿名オブジェクト
匿名オブジェクト:オブジェクトには名前ではありません
オブジェクトの簡略表現であります
匿名オブジェクトを使用するには、2つの方法
唯一のオブジェクトがメソッドを呼び出したときに一度
実際の転送として、
11、パッケージングコンセプト
それはちょうど、パブリックアクセス方法を提供する外に、隠されたオブジェクトのプロパティと実装の詳細を参照します
利点:
隠す実装の詳細は、パブリック・アクセス・メソッドを提供します
コードの再利用性の向上
セキュリティを強化
パッケージの原則
コンテンツが隠されている外付けする必要はありません。
隠された属性は、そのメソッドへのパブリックアクセスを提供します。
privateキーワード
これは、特権の修飾子です。
メンバー(メンバ変数とメンバメソッド)を変更することができます
このクラスでのプライベートメンバにアクセスするだけで変更されました。
民間の最も一般的なアプリケーション:
修正を加えたプライベートメンバ変数
対応のgetXXX()/のsetXXX()メソッドを提供します
標準のケースを使用します
パッケージのプライベート単に反射は、パッケージには、実際にそのクラスとメソッドです
12、この
この:あなたの参照内のオブジェクトは、クラスの代表
このように使用する場合は?
ローカル変数隠されたメンバ変数
他の用途には一緒にバックアップおよびスーパーを説明します
13、コンストラクタ
役割:データ・オブジェクトを初期化します。
コンストラクタフォーマット
クラス名やメソッド名と同じ
なし戻り値の型、でも無効ではありません。
具体的な戻り値はありません。
注意事項:
あなたはコンストラクタを提供しない場合、システムはデフォルトコンストラクタを提供します。
あなたはコンストラクタを提供する場合、システムが使用できなくなります。
コンストラクタもオーバーロードされます。
施工方法は値を返しませんが、また書き込みリターンの最後に、復帰に使用することができるが、いずれかの方法でこのような行為は、void型の値を返し、最後は問題ではありません。
14、クラスのメソッドのメンバー
メンバーの方法は、前の話一般的な方法です。
方法の特定の部門:
戻り値:メソッドの値がvoid戻り値の型との方法を持って返します
仮パラメータ:法とノンパラメトリック法は、パラメータ化。
15、ベースクラスの標準的な文言:
パラメータ化されたコンストラクタ:パラメータを持つコンストラクタ。
マルチパラメータ設定:コンストラクタの1つの以上のパラメータ
引数なしのコンストラクタ:パラメータなしで構成されました。
プライベート建設:そのようなオブジェクトの作成を約束していません。それとも、別のクラスのコンストラクタを作成する必要はありませんが、あなたはあなた自身のコンストラクタを作成することができます。
公共工事:このクラスの新しい缶誰もが、そのクラスのオブジェクトを取得します。
引数なしのコンストラクタを記述します:あなたは引数なしのコンストラクタを書いていない、と引数なしのコンストラクタの引数のコンストラクタを記述した場合、システムはデフォルトを与えることはありません。あなたは、引数なしのコンストラクタを使用することはできませんので、オブジェクトを作成します。
変数の割り当て方法のメンバーに
+のsetXXX()引数なしのコンストラクタ
パラメータ化されたコンストラクタ
16、クラスのインスタンスオブジェクトへのプロセス。
学生S =新学生( "ジョー・スミス"、18);
1、負荷Student.class
2、Sはオープンスタックメモリです。
3は、Studentクラスのオブジェクトのヒープメモリで開かれました。(デフォルト値はNULL、0.0、偽、\ u0000のです)
4、コンストラクタ、初期値を割り当てられたオブジェクトのプロパティを呼び出します。
図5は、変数sに割り当てられたヒープメモリアドレス(参照)を、開きます
17、staticキーワード
あなたはメンバ変数とメンバメソッドを変更することができます
静的キーワードの特長
クラスの負荷と負荷で
オブジェクトが存在しているよりも優先されます
すべての静的リソース共有クラス
これは、我々は、静的キーワードの条件かどうかを判断するために使用するものです
クラス名を呼び出すことによって、当然のことながら、オブジェクト名で呼び出すことができます
ノートstaticキーワード
静的メソッドでは、このキーワードではありません。
静的メソッドは、静的メンバ変数と(と呼ばれる)の静的メンバメソッドにアクセスすることができます。
18、静的変数と非静的メンバ変数との間の差
別の所有:
静的変数はクラスに属し、それはまた、クラス変数として知られています
全てもインスタンス変数(オブジェクト変数)として知られているオブジェクトに属する非静的メンバ変数、
別のメモリ位置:
静的変数は、静的エリア方式エリアに格納されています
ヒープメモリに保存されているメンバ変数
メモリは、異なる時間に現れます
静的変数の負荷とクラスのロードでは、クラスの消失と消えます
オブジェクトを作成するためのメンバ変数が存在すると、オブジェクトの消失と消えます。
異なるコール
静的変数は、クラス名によって呼び出すことができ、オブジェクトが呼び出すことができ
メンバー変数は、オブジェクトの名前で呼び出すことができます。
非静的メソッドは、静的メソッドは非静的を呼び出すことはできません、静的メソッドを呼び出すことができます。
19、メインメソッドは静的です
パブリック静的無効メイン(文字列[] args){}
権限が十分に大きいですのでメインは、仮想マシンによって呼び出されるため、パブリックパブリック、最大へのアクセス、。
静的静的は、オーダーJVMメソッドの呼び出しで、どこメソッドクラスをインスタンス化する必要はありません。
メインは、JVMによって呼び出され、ボイドの方法は、JVMにメモリを返す戻り値は意味がありません。
mainメソッド名ではなく、キーワードが、JVMはそれをのみ認識されます。
文字列[]引数:着信ランタイムパラメータを受信することができる文字列の配列であるパラメータです。