ホームページ Java &#&チュートリアル オブジェクト指向の内容を詳しく解説

オブジェクト指向の内容を詳しく解説

Jun 26, 2017 am 09:27 AM
this 物体 カプセル化 のために

オブジェクト指向でもプロセス指向でも、どちらも問題を解決する方法ですが、角度が異なります。

プロセス指向:

は、問題を解決するすべてのステップを個人的に行う必要があることを強調します。詳細は手動で実装する必要があります。


オブジェクト指向: 特定の問題を解決するには、特定の機能オブジェクトを使用します。すべての詳細に注意を払う必要はありません。対応するオブジェクトを作成するだけで済みます。

オブジェクト指向はプロセス指向をベースにしています


クラスとオブジェクトとその関係

クラス:同じ性質や動作(機能)を持つものの総称であり、抽象的な概念です オブジェクト:この中の特定の個体ものの種類

クラスとオブジェクトの関係
1 つのクラスは複数のオブジェクトを作成できます。クラスはオブジェクトの抽象化であり、オブジェクトはクラスのインスタンスです。 --->クラス
の特徴--->メンバ属性(メンバ変数)

動作(関数)--->メンバメソッド



クラスの作成形式:

修飾子クラス名データ型メンバ変数名 1;
データ型メンバ変数名 2; データ型メンバ変数名 3; ...

メンバメソッド 1;
メンバメソッド 2;
メンバメソッド 3;
...
}

修飾子:public
クラス名:識別子は意味を知っています
メンバ変数リスト:物事の特徴、現在のシーンが気になる特徴だけを書きます 書き方は、物事の特徴を全て書く必要はありません。変数の定義に似ています
メンバーメソッド: 物事の動作 (機能) 現在のシーンが関心のある動作 (特徴) のみを記述します。 書き方は前のメソッドと似ています。この時点で記述する場合は、static を削除する必要があります

クラスを初めて使用するときは、メソッド領域にロードする必要がありますが、再度このクラスを使用するたびにロードする必要はありません。もう一度


メンバー変数とローカル 変数の違い

1. 定義場所の違い
ローカル変数: メソッド内で定義
メンバー変数: クラス内、メソッド外で定義
2. メモリ内の格納場所の違い ローカル変数: ローカル変数はスタック領域に格納されます メンバー変数:メンバー変数はヒープ領域に格納されます
3. 異なるライフサイクル
ローカル変数:メソッドの呼び出しで生成され、メソッドの終了とともに消滅します 比較的短い
メンバー変数: オブジェクトの作成とともに生成され、オブジェクトデータがリサイクルされると消える 比較的長い
4. 異なる初期値
ローカル変数: 初期値なし、使用前に割り当てる必要がある
メンバー変数: 初期値あり、参照型 null 、整数 0、10 進数 0.0 文字: スペース、ブール値 false


カプセル化

カプセル化はオブジェクト指向の 3 つの主要な特性の 1 つであり、他の 2 つは継承ポリモーフィズムです

クラス名: 人
属性: 名前、年齢メソッド: 表示

カプセル化の利点
: プログラムのセキュリティを向上させる


属性をカプセル化する手順:
1. private キーワードを使用して対応する属性を変更し、外部のユーザーが外部のアクセス許可を介して属性に直接アクセスできないようにします。オブジェクト名.属性 2. 対応する属性メソッドの set と get を記述し、外部世界にプロパティにアクセスするためのチャネルを与えます

カプセル化は、オブジェクト指向プログラミング言語によるオブジェクト世界のシミュレーションです。変数はオブジェクト内に隠されており、外部から直接操作したり変更したりすることはできません。 カプセル化の原則:

外部に提供する必要のないコンテンツを非表示にします。
プロパティを非表示にし、それらにアクセスするためのパブリック メソッドを提供します。
メンバー変数はプライベートであり、対応する getXxx()/setXxx() メソッドを提供します
利点
:
メソッドを通じてメンバー変数の操作を制御し、コードのセキュリティを向上させます
コードをメソッドでカプセル化し、セキュリティを向上させますコードの再利用性

変数アクセスの近接原理:
同じ名前の変数が複数ある場合、ターゲット コードはコードのこの行に最も近い変数を使用します

これにより問題を解決できます:
ローカル変数とメンバー変数の場合名前は同じですが、特定のコードポイントでメンバー変数にアクセスしたい場合は、ターゲット行の変数名の前にこれを追加できます
これは現在このメソッドを呼び出しているオブジェクトのみです
this Whoeverこれは、

構築メソッド
がメソッドであることを参照します。 機能: オブジェクトのデータにデフォルト値を割り当てます。

定義形式:
修飾子 メソッド名 (パラメータリスト) {

いくつかの初期化ステートメント

}
修飾子: public
メソッド名: direct クラス名を記述します
パラメータリスト: メソッドを定義する前に仮パラメータを記述するのと同じです
コンストラクタには戻り値の型がないことに注意してください

パラメータなしのコンストラクタを手動で記述しない場合私たち自身がパラメータなしのコンストラクターを手動で作成した場合、システムはデフォルトでそれを提供します
それを使用するとき、システムはパラメータの構築メソッドを提供しません

。構築メソッドもメソッドであり、オーバーロードできます

構築メソッドを手動で作成する限り、システムはパラメータなしのコンストラクターを提供しません
オブジェクトを作成するためにパラメータなしのコンストラクターを使用する必要がある場合。パラメーターなしのコンストラクターを自分で記述する必要があります

以上がオブジェクト指向の内容を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHP の json_encode() 関数を使用して配列またはオブジェクトを JSON 文字列に変換する PHP の json_encode() 関数を使用して配列またはオブジェクトを JSON 文字列に変換する Nov 03, 2023 pm 03:30 PM

JSON (JavaScriptObjectNotation) は、Web アプリケーション間のデータ交換の一般的な形式となっている軽量のデータ交換形式です。 PHP の json_encode() 関数は、配列またはオブジェクトを JSON 文字列に変換できます。この記事では、PHPのjson_encode()関数の構文、パラメータ、戻り値、具体的な例などの使い方を紹介します。構文 json_encode() 関数の構文は次のとおりです。

TrendForce: Nvidia の Blackwell プラットフォーム製品により、TSMC の CoWoS 生産能力は今年 150% 増加します TrendForce: Nvidia の Blackwell プラットフォーム製品により、TSMC の CoWoS 生産能力は今年 150% 増加します Apr 17, 2024 pm 08:00 PM

4月17日の当サイトのニュースによると、TrendForceは最近、Nvidiaの新しいBlackwellプラットフォーム製品に対する需要は強気で、2024年にはTSMCのCoWoSパッケージング総生産能力が150%以上増加すると予想されるレポートを発表した。 NVIDIA Blackwell の新しいプラットフォーム製品には、B シリーズ GPU と、NVIDIA 独自の GraceArm CPU を統合する GB200 アクセラレータ カードが含まれます。 TrendForce は、サプライチェーンが現在 GB200 について非常に楽観的であることを確認しており、2025 年の出荷台数は 100 万台を超え、Nvidia のハイエンド GPU の 40 ~ 50% を占めると予想されています。 Nvidiaは今年下半期にGB200やB100などの製品を提供する予定だが、上流のウェーハパッケージングではさらに複雑な製品を採用する必要がある。

MySQLクエリ結果の配列をオブジェクトに変換するにはどうすればよいですか? MySQLクエリ結果の配列をオブジェクトに変換するにはどうすればよいですか? Apr 29, 2024 pm 01:09 PM

MySQL クエリ結果の配列をオブジェクトに変換する方法は次のとおりです。 空のオブジェクト配列を作成します。結果の配列をループし、行ごとに新しいオブジェクトを作成します。 foreach ループを使用して、各行のキーと値のペアを新しいオブジェクトの対応するプロパティに割り当てます。新しいオブジェクトをオブジェクト配列に追加します。データベース接続を閉じます。

Python の __contains__() 関数を使用してオブジェクトの包含操作を定義する Python の __contains__() 関数を使用してオブジェクトの包含操作を定義する Aug 22, 2023 pm 04:23 PM

Python の __contains__() 関数を使用して、オブジェクトの包含操作を定義します。Python は、さまざまな種類のデータを処理するための多くの強力な機能を提供する、簡潔で強力なプログラミング言語です。その 1 つは、__contains__() 関数を定義してオブジェクトの包含操作を実装することです。この記事では、__contains__() 関数を使用してオブジェクトの包含操作を定義する方法とサンプル コードを紹介します。 __contains__() 関数は Pytho です

AMD「Strix Halo」FP11のパッケージサイズを公開:Intel LGA1700と同等、Phoenixより60%大きい AMD「Strix Halo」FP11のパッケージサイズを公開:Intel LGA1700と同等、Phoenixより60%大きい Jul 18, 2024 am 02:04 AM

このWebサイトは7月9日、AMD Zen5アーキテクチャの「Strix」シリーズプロセッサには2つのパッケージングソリューションがあり、小型のStrixPointはFP8パッケージを使用し、StrixHaloはFP11パッケージを使用すると報じた。出典: videocardz 出典 @Olrak29_ 最新の事実は、StrixHalo の FP11 パッケージ サイズが 37.5mm*45mm (1687 平方ミリメートル) であり、これは Intel の AlderLake および RaptorLake CPU の LGA-1700 パッケージ サイズと同じであるということです。 AMD の最新の Phoenix APU は、サイズ 25*40mm の FP8 パッケージング ソリューションを使用しています。これは、StrixHalo の F

PHP における配列とオブジェクトの違いは何ですか? PHP における配列とオブジェクトの違いは何ですか? Apr 29, 2024 pm 02:39 PM

PHP では、配列は順序付けられたシーケンスであり、要素はインデックスによってアクセスされます。オブジェクトは、new キーワードによって作成されたプロパティとメソッドを持つエンティティです。配列へのアクセスはインデックス経由で、オブジェクトへのアクセスはプロパティ/メソッド経由で行われます。配列値が渡され、オブジェクト参照が渡されます。

Python の __le__() 関数を使用して、2 つのオブジェクトの小なり等しい比較を定義します。 Python の __le__() 関数を使用して、2 つのオブジェクトの小なり等しい比較を定義します。 Aug 21, 2023 pm 09:29 PM

タイトル: Python の __le__() 関数を使用して 2 つのオブジェクト以下の比較を定義する Python では、特別なメソッドを使用してオブジェクト間の比較演算を定義できます。その 1 つは __le__() 関数で、以下の比較を定義するために使用されます。 __le__() 関数は Python のマジック メソッドであり、「以下」演算を実装するために使用される特別な関数です。小なり等しい演算子 (<=) を使用して 2 つのオブジェクトを比較すると、Python

PHP のパッケージング技術とアプリケーション PHP のパッケージング技術とアプリケーション Oct 12, 2023 pm 01:43 PM

PHP のカプセル化テクノロジとアプリケーションのカプセル化は、オブジェクト指向プログラミングにおける重要な概念であり、外部プログラムに統一されたアクセス インターフェイスを提供するために、データとデータに対する操作を一緒にカプセル化することを指します。 PHP では、アクセス制御修飾子とクラス定義を通じてカプセル化を実現できます。この記事では、PHP のカプセル化テクノロジとそのアプリケーション シナリオを紹介し、いくつかの具体的なコード例を示します。 1. カプセル化されたアクセス制御修飾子 PHP では、カプセル化は主にアクセス制御修飾子によって実現されます。 PHP には 3 つのアクセス制御修飾子が用意されています。

See all articles