オブジェクト指向のプログラムは、ユーザーにさらされた特定の機能部品と非表示の実装パーツを含む各オブジェクトで構成されています。オブジェクト指向プログラミング(OOP)では、オブジェクトの特定の実装を気にする必要はありません。従来の構造化プログラミングでは、アルゴリズムが最初にランクされており、データ構造は2番目にランクされています。つまり、最初に操作方法を決定し、次に操作を促進するためにデータを整理する方法を検討します。 OOPはこの順序を逆転させ、データを最初に配置し、データを操作するアルゴリズムを考慮します。
I.クラス
クラスは、オブジェクトを構築するためのテンプレートと青写真です。素人の用語では、同じことが建物の図面に相当しますが、オブジェクトは建物と同等です。クラスからオブジェクトを構築するプロセスは、オブジェクトのインスタンスの作成と呼ばれます。
Javaでは、「クラス」はキーワードクラスで定義され、その後にクラス名が続きます。例えば:
クラスパーソン{//クラスボディコンテンツ}個人クラスが定義されています。
1。フィールドとメソッド
クラスを定義する場合、クラスで2種類の要素を設定できます:データメンバーとメンバー関数。データメンバーがオブジェクトであり、これはあらゆるタイプである可能性があります。オブジェクトを指すハンドルの場合、このハンドルは初期化され、コンストラクターを介して実際のオブジェクトに接続する必要があります。基本的なデータ型の場合、クラス定義の場所で直接初期化できます。
各オブジェクトは、独自のデータメンバーのストレージスペースを保持します。データメンバーはオブジェクト間で共有されません。
class person {string name;二重給与;} newキーワードを使用してオブジェクトを作成します。のように:
人p = new person();
(1)マスターメンバーのデフォルト値
特定のマスターデータ型がクラスメンバーに属している場合、初期化がデフォルト値を確実に取得できることも明らかではありません。
| メインタイプ | デフォルト値 |
| ブール | 間違い |
| char | '/u0000'(null) |
| バイト | (バイト)0 |
| 短い | (短い)0 |
| int | 0 |
| 長さ | 0L |
| フロート | 0.0F |
| ダブル | 0.0d |
変数がクラスのメンバー変数である場合、メインタイプのために間違いなく初期化され、初期化された値に特別な注意を払う必要があります。ローカル変数の場合、 int x; 0に自動的に初期化されません。
(2)メソッド
メソッドの基本コンポーネントには、名前、独立変数、リターンタイプ、およびボディが含まれます。メソッドの基本的な形式は次のとおりです。
返回类型方法名(/*自变量列表*/) {/* 方法体*/}返品タイプは、メソッドが呼び出された後に返される数値タイプを指します。メソッド名は、特定のメソッドの識別と参照です。引数リストには、メソッドに渡す情報のタイプと名前がリストされています。
Javaでは、メソッドは对象名.方法名
1.ハンドルを使用してオブジェクトを操作します
Javaは完全にオブジェクト指向ですが。ただし、操作の識別子は、実際には「参照」とも呼ばれるオブジェクトの「ハンドル」を指しています。ハンドルは独立して存在する可能性がありますが、ハンドルがある場合は、それに対応するオブジェクトが必要だとは言えません。たとえば、 int i;整数変数Iを定義します。これは、値が必要であることを意味しません。たとえば、文字列ハンドルを作成します。
文字列s;
ここでは、ハンドルだけが作成され、オブジェクトは作成されません。 Sにはそれに関連付けられたオブジェクトがないため、Sが呼び出された場合は例外が表示されます。したがって、作成時に初期化が必要です。
文字列s = "hello";
Javaでは、オブジェクトが新しいキーワードで作成され、オブジェクトへの参照(つまり、ハンドル)を返します。それで
文字列s = new String( "hello");
コンテンツ「hello」を含む文字列オブジェクトが作成され、オブジェクトのハンドル(参照)が保存するためにsに引き渡されました。
2。データストレージの場所
1.登録。プロセッサ内にある最速の貯蓄エリア。レジスタのサイズは限られており、サイズはコンパイラによって割り当てられます。
2。スタック。通常のRAM(ランダムアクセスメモリ)領域に存在すると、サイズは「スタックポインター」を介して変更できます。スタックポインターを下に移動すると、新しいメモリスペースが作成されます。上に移動すると、メモリスペースが解放されます。プログラムを作成するとき、Javaコンパイラは、スタックに保存されているすべてのデータの「長さ」と「存在時間」を正確に知る必要があり、コンパイラは対応するコードを生成してポインターを移動します。 Javaオブジェクトのハンドルはその中に保存されていますが、Javaオブジェクトはスタックに保存されていません。
3。ヒープ。 Javaオブジェクトが保存される通常の目的のためのメモリプール。コンパイラは、「メモリヒープ」または「ヒープ」から割り当てられているストレージスペースの量と、データがどのくらいの期間続くかを知らないか、または知る必要はありません。
4。静的ストレージ。静的とは、固定位置(RAM)を指します。プログラムの実行中、静的に保存されたデータはいつでも電話をかけます。オブジェクトの特定の要素が静的キーワードによって静的であることを示します。 Java自体は静的ストレージスペースに配置することはできません。
5。定数ストレージ。通常、一定の値はプログラムコード内に配置され、決して変更されません。
6。非RAMストレージ。データがプログラムから完全に独立している場合、プログラムが実行されておらず、プログラムの制御範囲内にある場合でも存在します。たとえば、ストリーミングオブジェクトと固定オブジェクト。
2。オブジェクト
オブジェクトの3つの主な特性:
•オブジェクトの動作 - オブジェクトに適用できる操作、またはオブジェクトに適用できる方法は何ですか?
•オブジェクトステータス - これらのメソッドを追加すると、オブジェクトはどのように応答しますか?
•オブジェクト識別 - 同じ動作と状態で異なるオブジェクトを識別する方法は?
オブジェクトの動作は、呼び出し可能な方法によって定義されます。各オブジェクトは、オブジェクトの状態である現在の機能を説明する情報を保持します。オブジェクトの状態は自発的に変化しません。適切に設計されたクラスは、呼び出しメソッドによってのみ実装できます。メソッド呼び出しなしでオブジェクトの状態が変更された場合、カプセル化が破壊されたことを意味します。
カプセル化:パッケージ内のデータと動作を組み合わせて、オブジェクトの消費者からのデータを隠す実装方法。カプセル化の鍵は、クラス内のメソッドが他のクラスのインスタンスドメインに直接アクセスしてはならないことです。プログラムは、オブジェクトのメソッドドメインオブジェクトデータを介してのみ相互作用します。
オブジェクト内のデータは、インスタンスフィールドまたは属性と呼ばれます。データを操作するプロセスは、メソッドと呼ばれます。特定のオブジェクトごとに、インスタンスドメイン値の特定のセット(属性値)があり、これらの値のセットはオブジェクトの現在の状態です。
クラス間の関係
クラス間の共通の関係:
•依存関係( "use-a"):あるクラスの方法は、別のクラスのオブジェクトを操作します。
•集約( "Has-A"):あるクラスのオブジェクトには、別のクラスのオブジェクトが含まれています。
•継承( "is-a"):特別と一般の関係を表すために使用されます。クラスAがクラスB(A継承B)を拡張する場合、クラスAにはクラスBの方法だけでなく、拡張方法も含まれています。
オブジェクトには実際にはオブジェクトが含まれていませんが、オブジェクトのみを参照します。
Javaでは、任意のオブジェクト変数の値は、別の場所に保存されているオブジェクトへの参照です。新しいオペレーターの返品値も参照です。
上記の記事は、Javaクラスとオブジェクトが私があなたと共有したすべてのコンテンツであることを包括的に理解しています。私はそれがあなたに参照を与えることができることを願っています、そしてあなたがwulin.comをもっとサポートできることを願っています。