この記事のソースコード:GitHub・ここをクリック|| GitEE・ここをクリック
1.基本的な概念
1.オブジェクト指向の概念
オブジェクト指向プログラミングの主なアイデアは、問題を構成する各トランザクションをさまざまなオブジェクトに分解することです。オブジェクトを確立する目的は、ステップを完了することではなく、問題解決ステップ全体での物の動作を説明することです。
2.クラスとオブジェクト
オブジェクト:実際に存在する唯一のもの。アプリケーションでは、オブジェクトはデータとアクションの組み合わせであり、操作を実行できるだけでなく、操作の結果を記録することもできます。
クラス:抽象的な概念。実際には、特定の種類のものの共通の属性と動作を抽出します。たとえば、User [name.age.gender]クラスは、ユーザーの基本情報を記述するために使用されます。
Java開発でオブジェクト指向を理解する方法:適切なオブジェクトインターフェイスAPIシステムを構築し、適切なオブジェクトを作成し、適切な問題を解決します。たとえば、JDK APIにはクラスが定義されており、これらのクラスによって作成されたオブジェクトは直接使用されます。カスタムクラスによって作成されます。オブジェクトの使用、MVCモードでは、さまざまなビジネス機能がさまざまなインターフェイスとクラスシステムを作成します。
3.プロパティとメソッド
クラス変数
場所の違い:
- メンバー変数は、メソッドの外部、クラスの内部で定義されます。
- ローカル変数はメソッドで定義されます。
機能の違い:
- メンバー変数の役割は、あるクラスのパブリックプロパティを記述することです。
- ローカル変数の役割は、メソッドで内部的に使用する変数を提供することです。
初期値の差:
- メンバー変数にはデフォルトの初期値があります。
- ローカル変数にはデフォルトの初期値がないため、使用する前に初期化する必要があります。
ライフサイクル:
- オブジェクトが作成されると存在し、オブジェクトが消えると消えます。
- ローカル変数は、対応するメソッドが呼び出されたときに変数を作成するステートメントが実行されるときに存在します。ローカル変数がそれ自体のスコープから外れると、すぐにメモリから消えます。
クラスのメソッド
クラス関数の特定の説明。クラスメソッドまたはオブジェクトメソッドの場合があります。
- 静的メソッドとも呼ばれるクラスメソッドは、一般的に使用されるツールクラスであるクラスを使用して直接呼び出されます。
- インスタンスメソッドとも呼ばれるオブジェクトメソッドは、一般的なAPIメソッドであるクラスオブジェクトを使用して呼び出されます。
工法
コンストラクターの機能は、対応するオブジェクトを初期化することです。戻り値のタイプがない場合、コンストラクターの関数名はクラス名と一致している必要があります。クラスがコンストラクターを明示的に宣言していない場合、javaコンパイラーはパラメータなしのコンストラクタをクラスに追加します。クラスがコンストラクタを使用して明示的に記述されている場合、javaコンパイラはそのクラスにパラメータなしのコンストラクタを追加しません。クラスには複数のオーバーロードがあります。
4.インターフェース
インターフェイスは特別なクラスです。インターフェイスのメンバー変数のデフォルトの修飾子はpublic-static-finalであり、インターフェイスのメソッドは抽象メソッドです。デフォルトの修飾子はpublic-abstractです。インターフェイスはオブジェクトを作成できず、構築メソッドもありません。はい、インターフェイスはクラスの実装時に使用されます。非抽象クラスがインターフェイスを実装する場合は、インターフェイスのすべてのメソッドを実装する必要があります。
インターフェイスの役割:プログラムのデカップリング、実装クラスの制約仕様の定義、特別な機能を拡張する必要がある場合は、インターフェイスに基づいて実装することもできます。
クラスとインターフェースの関係:複数の実現関係;インターフェースとインターフェースの関係:複数の継承関係。
5.オーバーロードと書き換え
メソッドの書き直し
親クラスの関数が子クラスのニーズを満たすことができない場合、メソッドを書き換えることができます。つまり、子親クラスは同じ名前の関数を使用し、子クラスによってオーバーライドされるメソッドは@Overrideアノテーションを使用します。ここに継承関係があります。
- メソッド名とパラメーターリストは一貫している必要があります。
- サブクラスの権限修飾子は、親クラスの権限修飾子以上である必要があります。
- サブクラスの戻り値タイプは、親クラスの戻り値タイプ以下である必要があります。
- サブクラスによってスローされる例外タイプは、親クラスによってスローされる例外タイプ以下である必要があります。
メソッドのオーバーロード
クラス内に同じ名前の関数が2つ以上あり、メソッドオーバーロードと呼ばれます。関数名は一貫している必要があり、パラメーターリストは一貫していません(パラメーターの数またはパラメーターのタイプが一貫していません)。
6.パッケージと権限
権限修飾子
権限修飾子は、変更されたメンバーのスコープの可視性を制御するためのものであり、パブリック、プライベート、保護、デフォルト(変更なし)に分けられます。パブリックとプロテクトのみが異なるパッケージでアクセスでき、プロテクトは継承関係でアクセス可能である必要があります。
包package
パッケージは、クラス名の繰り返しの競合の問題を解決するためのコンピュータシステム内のフォルダとして理解できます。パッケージ名はすべて小文字であり、ステートメントはjavaファイルの最初のステートメントに配置する必要があります。
2.基本機能
パッケージ
クラスの内部実装の詳細を非表示にし、外部インターフェイスのみを公開します。たとえば、実際の開発シナリオの一般エンティティクラスのすべてのメンバー属性(メンバー変数)をカプセル化する必要があります。これは、このクラスのコードを防ぐための保護バリアと見なすことができます。また、データは外部クラスによって定義されたコードによってランダムにアクセスされます。適切なカプセル化により、プログラムコードの理解と維持が容易になり、セキュリティが強化されます。
継承
既存の親クラスに基づいて、新しいクラス、つまりサブクラスを再構築します。サブクラスオブジェクトを介して、親クラスの非プライベートメンバー変数とメンバーメソッドにアクセスし、親クラスの非プライベートメンバーメソッドをオーバーライドできます。継承の役割コードの再利用性を向上させることができます。
多形性
多態性とは、オブジェクトが多くの形式を持つことができることを意味します。たとえば、親クラスの参照型変数はサブクラスのオブジェクトを指します。インターフェイスの参照型変数はインターフェイス実装クラスのオブジェクトを指します。この状況は、継承または実現の関係に存在します。 、多態性の場合、サブ親クラスに同じ名前のメンバー変数があると、同じ名前の非静的関数を除いて、親クラスのすべてのメンバーにアクセスします。
3.一般的なキーワード
1.このキーワード
thisキーワードは、関数の呼び出し元オブジェクトを表します。同じ名前のメンバー変数とローカル変数がある場合、デフォルトでは、メソッド内のローカル変数のデータにアクセスします。メンバー変数のデータは、コンストラクターでthisキーワードによって指定できます。別のコンストラクターを呼び出して、オブジェクトを初期化できます。
2.静的キーワード
静的に変更されたメンバー変数:すべてのオブジェクトで共有する必要があるデータがある場合は、静的な変更を使用できます。
静的に変更されたメンバー関数:静的メソッドには、オブジェクトに依存せずにアクセスできます。非静的メンバーメソッド/変数は、呼び出される特定のオブジェクトに依存する必要があります。
静的に変更されたコードブロック:staticキーワードは、プログラムのパフォーマンスを向上させるために静的コードブロックをパッケージ化するために使用されます。静的コードブロックは、クラスのどこにでも配置できます。クラスが最初にロードされると、各静的コードブロックが順番に実行されます。
3.スーパーキーワード
superキーワードは、親クラススペースの参照を表します。サブ親クラスに同じ名前のメンバーが存在する場合、サブクラスはデフォルトでサブクラスのメンバーにアクセスし、superキーワードを使用して、サブクラスオブジェクトを作成するときに親クラスのメンバーを指定できます。 、パラメータのない親クラスのデフォルトの構築メソッドが最初に呼び出され、親クラスの構築メソッドはsuperキーワードで指定できます。
4.instanceofキーワード
instanceofキーワードの役割:オブジェクトが指定されたカテゴリに属しているかどうかを判断するには、オブジェクトと指定されたカテゴリに継承または実現の関係が必要です。このキーワードは通常、強制型変換の前に判断し、変換を実行するために使用されます。
5.最後のキーワード
最終変更クラス:クラスを継承できないことを示します。最終クラスのメンバー変数は必要に応じて最終に設定できますが、最終クラスのすべてのメンバーメソッドは暗黙的に最終メソッドとして指定されることに注意してください。
最終変更メソッド:ロックメソッドは、継承されたクラスがその意味を変更するのを防ぎます。2番目の理由は効率です。親クラスの最終メソッドは、サブクラスによってオーバーライドできません。
最終変更変数:メンバー変数は定数としてマークされ、一度だけ割り当てることができます。値は割り当て後に変更されません。関数のパラメータータイプが最終として宣言されている場合、パラメーターが読み取り専用であることを意味します。
6.抽象的なキーワード
抽象修正クラス:抽象クラスはインスタンス化できません。抽象クラスとインターフェースの違いは、インターフェースにビジネスロジックを実装するためのインスタンスメソッドがないのに対し、抽象クラスはインスタンスメソッドを持ち、ビジネスロジックを実装できることです。抽象クラスは使用できません。最終的に変更されたクラスは継承できないため、最終的なキーワードの変更。抽象クラスの場合は、継承を通じて抽象メソッドを実装する必要があります。
抽象変更メソッド:抽象メソッドには、インターフェイスメソッドと同様のメソッド本体がありません。抽象メソッドはサブクラスで実装する必要があるため、プライベートで変更することはできません。また、抽象メソッドは静的で変更できません。抽象クラス。抽象メソッドは無意味です。
4、シーン分析
1.デザインパターン
オブジェクト指向とデザインパターンは、過去数年間で非常にホットな概念です。インタビューで尋ねる必要のある質問。プログラミングでデザインパターンを使用する場合は、問題の高度な抽象化とカプセル化であるオブジェクト指向のメカニズムを、レイヤーごとに理解する必要があります。実現を解決し、コードの再利用性、読みやすさ、柔軟性、保守性を向上させます。最も重要なことは、高いスタイルを持つことです。
2.IOストリームシステム
オブジェクト指向および設計パターンのコードを理解したい場合は、JavaのIOストリームシステムのAPI、トップレベルインターフェイス、下位実装、パッケージングクラス、および拡張クラスの読み取りに集中できます。これら2つの概念は、実際に極端に使用されています。もちろん、IOストリームはファイル処理の中核であり、ソースコードを読む価値もあります。
3.MVC開発モデル
MVC開発モデルでは、ビジネスレイヤーインターフェイスとビジネスレイヤーの実装。データベースインターフェイスとデータアクセスの実装も、最も基本的なオブジェクト指向の使用インターフェイスであり、インターフェイスの実装クラスです。
5、ソースコードアドレス
GitHub·地址
https://github.com/cicadasmile
GitEE·地址
https://gitee.com/cicadasmile
推奨読書:仕上げプログラミングシステム
シリアルナンバー | プロジェクト名 | GitHubアドレス | GitEEアドレス | 推奨 | |
---|---|---|---|---|---|
01 | Javaは、設計パターン、アルゴリズム、およびデータ構造を記述します | GitHub・ここをクリック | GitEE・ここをクリック | ☆☆☆☆☆ | |
02 | Javaの基盤、並行性、オブジェクト指向、Web開発 | GitHub・ここをクリック | GitEE・ここをクリック | ☆☆☆☆ | |
03 | SpringCloudマイクロサービスの基本コンポーネントケースの詳細な説明 | GitHub・ここをクリック | GitEE・ここをクリック | ☆☆☆ | |
04 | SpringCloudマイクロサービスアーキテクチャの包括的なケース | GitHub・ここをクリック | GitEE・ここをクリック | ☆☆☆☆☆ | |
05 | SpringBootフレームワークの基本的なアプリケーションから高度なものまで | GitHub・ここをクリック | GitEE・ここをクリック | ☆☆☆☆ | |
06 | SpringBootフレームワークは、一般的なミドルウェアを統合および開発します | GitHub・ここをクリック | GitEE・ここをクリック | ☆☆☆☆☆ | |
07 | データ管理、配布、アーキテクチャ設計の基本的なケース | GitHub・ここをクリック | GitEE・ここをクリック | ☆☆☆☆☆ | |
08 | ビッグデータシリーズ、ストレージ、コンポーネント、コンピューティング、その他のフレームワーク | GitHub・ここをクリック | GitEE・ここをクリック | ☆☆☆☆☆ |