オブジェクト向けプログラミングの4つの特性
7772 ワード
以前の文章で、学院で勉強しながら、講座を聞きながら勉強し、面接をしながら「Java」を勉強していたら、ラベルのように質問についていくのが対象です.今日の位置付けでは、オブジェクト向けの4つの特性について説明します.
オブジェクトの3つの要素
≪ステータスの保持|Keep Status|emdw≫(オブジェクトのステータス):オブジェクトはステータス情報を格納および保持する必要があります.これらのプロパティ(変数)は変数として定義する必要があります.これらの属性値の変更により、オブジェクトのステータスが変更される場合があります.
提供機能(オブジェクトの責任):オブジェクトは機能を提供する必要があります.メソッドの提供.このセクションは、外部から直接アクセスしたり、プロパティを変更したりするのではなく、オブジェクトによって機能が提供されるカプセル化に関連しています.
一意の識別子(オブジェクトの一意性):各オブジェクトに一意の識別子が必要です.
オブジェクト向けの4つのプロパティ
さあ、また本題に戻ります.私たちはなぜオブジェクト向けの方法を使用しますか?有効な開発方式のために使われています.このようなオブジェクト向けの特性には抽象化,継承,隠匿,再利用,インタフェースなどがある.私たちはこれについて調査します.
1.パッケージ
オブジェクトを保護するためのプロパティ(変数)をカプセル化します.
ex)オブジェクトのパッケージングは現実世界でも見られ,コンピュータ本体内には多くの部品があるが,電源を入れるために,マザーボードに直接電源を入れるのではなく,外部キャビネット内の電源スイッチを通すように状態属性をON/OFFに変更する.
メソッド設計 プロパティは宣言されていますが、ステータスを変更する方法がない場合は、エラー宣言のプロパティです.つまり、あなたが持っている属性に対して、その状態を変更する機能を提供する必要があります. のすべての実物オブジェクトが持つ機能を提供する必要があります. 各メソッドには相関がある必要があります.すなわち、車両のレンタル/返却や自動車登録等の登録/解除等の各属性の相対機能を提供しなければならない. オブジェクト内のメソッドは、他のオブジェクトに渡され、他のオブジェクトで定義されたプロパティを直接処理することなく、オブジェクト内のプロパティを処理する必要があります. Getter/Setterメソッド:外部から直接内部属性にアクセスするのではなくGetter/Setterメソッドを使用するのに適しています. CRUD方法: データ処理のための基本的なCRUDを提供するビジネスロジックメソッド: ビジネスロジック処理メソッドの提供オブジェクトライフサイクル処理方法:通常destroy()、disconnect()、quit()などを消滅させる方法を指す オブジェクトの永続管理方法:永続性(有効性)プロパティを変更する必要がある場合は、外部からアクセスできないと宣言し、内部の他の方法で使用します.
完全性:通常のカプセル化符号化といえば、主な形式は変数がprivateとして宣言され、方法がpublicとして宣言される.この場合,オブジェクトの整合性のためにGetter/Setterの他にpublic methodは基本的に入力したパラメータに対してValidationを行った後に実行される.このValidationでは、オブジェクトの値を変更したり、値を有効にしたりできます.
だからカプセル化の利点は?
オブジェクト向けのパターンの1つの抽象を提供する.実際には、外部で方法がどのように機能しているかを知る必要はありません.これらの機能を簡単に調整することで、オブジェクト単位でプログラム設計を行うことができます. 再使用性向上.1つのオブジェクトに関連する属性と方法は、カプセル化された形式で提供され、オブジェクトのモジュール性と凝集力が向上します.従って、再利用性を向上させることができる.プロシージャ向けのプログラミングでメソッドを再利用する必要がある場合は、関数が参照するグローバル変数と内部呼び出しのメソッドの影響を確認する必要がありますが、オブジェクトの場合は単一のオブジェクトにのみ影響するため、再利用性が高いです. 2.継承はオブジェクトの継承に向いており、クラスはオブジェクトである.つまり、階級から階級に伝わる.また,継承は属性の継承ではなく,下に進むほど具体的である. 継承が期待できるものは何でしょうか? の番組構造に対する理解度を高める.最上位クラスの構造を表示し、最下位の動作を理解できます. の再使用性を向上させる.クラスに必要なすべてのプロパティとメソッドを定義せずに、それらを継承して使用できます. の拡張性が向上しました.一貫した形式のクラスオブジェクトを追加することで、プログラムの拡張を簡素化できます. の保守性が向上しました.各オブジェクトに独自のメソッドが定義されている場合は、コードを変更するときに多くの操作を実行する必要がありますが、継承を使用すると、一貫した形式で作成できます. 3.多形性(重合状態)多形性とは、1つの個体が複数の形態になることを意味し、オブジェクト向けの場合にも同様の形式が用いられる.この多形性は誇張によって実現できる. は、多様な形態を有する能力であり、参照変数でもあり、多様なタイプのオブジェクトを参照することができる.すなわち,先祖型の参照変数として,子孫型のオブジェクトを扱うことができるのは多形性である. 祖先タイプの参照変数は、子孫タイプのインスタンスを参照することができ、逆に、祖先タイプのインスタンスを参照することはできません. オブジェクト向けの抽象はモデリングです. は、特に、共通の部分、または特定の特性を分離して再結合する部分である. 多形性と継承は抽象化されている. エンボスインタフェース
抽象クラス(未完成の設計図)ですが、抽象度は抽象クラスより高いです.
実装されていない基本設計図👉 からっぽ
メンバーには抽象メソッドと定数しかありません
クラスの作成を支援するインスタンスを作成できません
予め定められた規則に適応するための基準の提出に用いる
インタフェースの利点 の開発時間を短縮するOKインタフェースを作成すれば、そのインタフェース作成プログラムを使用することができる.メソッドを呼び出す側は宣言子を知るだけでいいからです!同時に,実装インタフェースのクラスを他方に記述させることで,実装インタフェースのクラス作成が完了するのを待たずに同時に開発を行うことができる. 標準化可能😎 プロジェクトで使用する基本フレームワークをインタフェースとして記述し、開発者にインタフェースを実装させてプログラムを記述することで、より一貫した構造化されたプログラムを開発することができます. も関係のない階級に関係を築く機能がある.🔥 は、継承関係でも同じ祖先クラスでもないクラスにインタフェースを共通に実現させることによって関係を確立する.独立プログラミング可能👌🏼 クラスの宣言とインプリメンテーションを分離できるため、実際のインプリメンテーションとは独立したプログラムを記述できます.インタフェースを使用してクラスとクラス間の直接関係を間接関係に変更する場合は、クラスの変更に関連する他のクラスに影響を与えることなく、独立してプログラミングできます.
オブジェクトの3つの要素
≪ステータスの保持|Keep Status|emdw≫(オブジェクトのステータス):オブジェクトはステータス情報を格納および保持する必要があります.これらのプロパティ(変数)は変数として定義する必要があります.これらの属性値の変更により、オブジェクトのステータスが変更される場合があります.
提供機能(オブジェクトの責任):オブジェクトは機能を提供する必要があります.メソッドの提供.このセクションは、外部から直接アクセスしたり、プロパティを変更したりするのではなく、オブジェクトによって機能が提供されるカプセル化に関連しています.
一意の識別子(オブジェクトの一意性):各オブジェクトに一意の識別子が必要です.
さあ、また本題に戻ります.私たちはなぜオブジェクト向けの方法を使用しますか?有効な開発方式のために使われています.このようなオブジェクト向けの特性には抽象化,継承,隠匿,再利用,インタフェースなどがある.私たちはこれについて調査します.
1.パッケージ
オブジェクトを保護するためのプロパティ(変数)をカプセル化します.
ex)オブジェクトのパッケージングは現実世界でも見られ,コンピュータ本体内には多くの部品があるが,電源を入れるために,マザーボードに直接電源を入れるのではなく,外部キャビネット内の電源スイッチを通すように状態属性をON/OFFに変更する.
メソッド設計
完全性:通常のカプセル化符号化といえば、主な形式は変数がprivateとして宣言され、方法がpublicとして宣言される.この場合,オブジェクトの整合性のためにGetter/Setterの他にpublic methodは基本的に入力したパラメータに対してValidationを行った後に実行される.このValidationでは、オブジェクトの値を変更したり、値を有効にしたりできます.
だからカプセル化の利点は?
class Tv {
boolean power;
int channer;
void power() {
power = !power;
}
void channelUp() {
++channel;
}
void channelDown() {
--channel;
}
}
class SmartTv {
boolean soundBarPower;
void soundBar() {
soundBarPower = !soundBarPower;
}
}
4.抽象抽象クラス(未完成の設計図)ですが、抽象度は抽象クラスより高いです.
実装されていない基本設計図👉 からっぽ
メンバーには抽象メソッドと定数しかありません
クラスの作成を支援するインスタンスを作成できません
予め定められた規則に適応するための基準の提出に用いる
インタフェースの利点
@Service
public class BoardService {
@Autowired
private BoardRepository boardRepository;
@Autowired
private UserRepository userRepository;
public Board save(String username, Board board) {
User user = userRepository.findByUsername(username);
board.setUser(user);
return boardRepository.save(board);
}
}
Reference
この問題について(オブジェクト向けプログラミングの4つの特性), 我々は、より多くの情報をここで見つけました https://velog.io/@jennyfromdeblock/객체지향Object-Oriented-Programming의-4대-특성テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol