サイト検索

カプセル化は何ですか?プログラミングにおけるカプセル化

カプセル化は、3つの主要なオブジェクト指向プログラミング(OOP)の機能他の2つは多型性と遺伝性です。これらは一緒になってPLOの基盤を形成し、これらの3つの原則を使用して、さまざまな言語でプログラムを作成する可能性の全範囲を決定します。オブジェクト指向言語は、それらを明確にフォローする必要があります。

カプセル化は

OOPの基本

オブジェクト指向プログラミングは、その宇宙の3つの柱に立っています:

  • ある種のプログラミング言語が、互いに同様の方法で関係を持つオブジェクトをどのように扱うかという問題に対応する多態性。
  • 継承は、コードの使用の刺激が繰り返し発生する方法、答えを与える。
  • カプセル化は、実装が隠蔽される方法の問題に対する答えであり、したがってデータの完全性は保持されます。

用語

カプセル化(プログラミング)エンドユーザーからプログラムコードの一部を隠すためのアクセス修飾子の使用。その下には、開発者または継承するオブジェクトを意味します。

カプセル化の概念

「カプセル化」という概念の本質は、

この定義は、カプセル化の下でそれはプログラムコードの全部または一部の隠蔽を意味する。 「カプセル化」の概念の本質は、アクセス修飾子の操作です。これは、開発者自身が、どのプロパティ、メソッド、クラスをクライアントクラスに対してオープンするのか、どのメソッド、クラスを隠すのかを決定することを意味します。

アクセス修飾子

カプセル化プログラミング
特に、カプセル化(Javaプログラミング)を操作できるアクセス修飾子があります。

  • public(public - public、open、access) - 現在のオブジェクトとクラスの両方、および外部のための共有アクセス。
  • プライベート(プライベート、プライベート、隠しアクセス) - プライベートアクセス。その本質は前のものとは全く反対です。現在のクラスからのアクセスのみを提供します。
  • protected(protected、semi-hidden、access) - 現在のクラスとその派生クラスのアクセス。
  • デフォルトでは、未指定のアクセス修飾子は、現在のクラスパッケージ全体でフィールド/メソッドが可視であることを示します。

C#( "C Sharp")では、指定されたもの(後者を除く)に加えて、まだそのような修飾子があります:

  • 内部(内部) - 現在のコレクションでのアクセシビリティ、他のすべてのケースでのアクセスを閉じた。
  • 内部保護された(内部保護されたアクセス) - 2つの修飾子を1つに組み合わせることで、両方のプロパティが自分自身で現れます。

カプセル化の役割

カプセル化の仕組みにより、プログラムコードに対する外部の影響や、それに埋め込まれたデータの不正使用を排除することができます。これは、コードとデータを1つにまとめることによって行われます。

カプセル化プログラミングの例

オブジェクトとカプセル化

ソフトウェアモジュールの実装とプログラミングでコードに埋め込まれたデータは、オブジェクトと呼ばれます。カプセル化との関連の本質は、問題のメカニズムの保全性を維持し確実にすることができるのがこの技術であるという事実にあります。

カプセル化の利点

カプセル化は、エンコード処理を簡素化する方法です。数多くのコード行が "舞台裏で"残り、メインクラスの作業ではオブジェクトのインスタンスが使用されます。

データ保護の考え方

カプセル化はまた、データ保護の考え方を実現します。オブジェクト指向プログラミングのプログラムロジックは、ほとんどのデータがアクセス修飾子private(private、private)またはprotected(protected)によって隠されるという事実に基づいています。外部の世界であるクライアントは、ソフトウェアモジュールの実装を偶然または意図的に破損することはできません。実際にはこれを行うことは非常に簡単なので、カプセル化は非常に良い原則です。

カプセル化の単位

クラスは、カプセル化の基本単位として、データを記述し、これらのデータで操作できるコードを含んでいます。オブジェクトを構築するための基礎でもあります。後者は、クラスのインスタンスとして表されます。

カプセル化プログラミングjava
次の用語も使用されています。

  • メンバーは、クラスに含まれるコードとデータです。
  • フィールド、またはインスタンス変数 - クラスを定義する、いわゆるデータ。
  • メンバー関数にはコード自体が含まれています。メンバー関数は総称です。特殊なケースがメソッドです。

具体的な例におけるカプセル化

カプセル化プログラミングは

カプセル化(プログラミング)の例:

*注:

descriptionは、メソッド/プロパティ/変数の説明です。つまり、プログラム内で実際に何が起こっているかについてコメントしています。タグを開く/閉じるとデモンストレーション

システムを使用する。

名前空間OOPLibrary.Auto

{

///

///このクラスは、自動車の特性と動作を記述することを目的としています

///

パブリッククラスAuto

{

///

///このプロパティへの外部介入は、開発者が余分であると考えられるため、書き込むために作成された変数、車の年齢

///これは、修飾子private、すなわちプライベート・プライベート・アクセス(上記の説明を参照)でマークされています。

///

プライベートint _age;

///

///車が現在移動しているかどうかを示すブール変数(2つの可能な値 - はいまたはいいえ)

///エンドユーザーには、彼が誰であろうと、誰にも開放されてはいけません。したがって、この変数にはプライベートアクセス修飾子 "privat"が割り当てられます。

///

プライベートbool _isMoving;

///

///この文字列変数には、車の色に関する情報が含まれている必要があります。外部からの影響を受ける可能性があります

/// publicアクセス修飾子 "public"が色として選択されたためです。

///

パブリック文字列Color;

///

///この特定のケースでは、車の名前を変更することもできます

///は、public修飾子(クラスまたはアセンブリに関係なく、誰でも公開アクセス権)を割り当てます。

///

public string Name;

///

///クラスコンストラクタが開かれ、変数で表現され、前に指定されたすべてのプロパティが値を取得する

///

public Auto()

{

_age = 5;

_isMoving = false;

Color = "Purple";

名前= "Skoda Octavia";

}

///

///このメソッドは、autoの時代の戻り値を実装します。それはなぜ必要なのですか?

///プライベートアクセス修飾子は、クライアントがそれを変更することを可能にしません。

///

///車の年齢を返します。

public string GetAge()

{

"現時点では、選択されたマシンは" + _年+歳 "です。";

}

///

///車が動かない場合は、このメソッド動きの開始を実現する。車の状態(走行中かどうか)を示す変数がチェックされ、結果に応じて対応するアクションが実行されるか、または対応するメッセージが表示されます。

///

public void Start()

{

if(_isMoving)

{

Console.WriteLine( "移動は既に開始されています");

}

else

{

_isMoving = true;

Console.WriteLine( "開始するには、注意..前方に行こう!");

}

}

///

///移動が開始された場合、このメソッドは停止します。前述の場合と同じプログラミングロジック。

///

public void Stop()

{

if(_isMoving)

{

_isMoving = false;

Console.WriteLine( "Stop、machine");

}

else

{

Console.WriteLine( "エラー:車はすでに設置されており、移動しません");

}

}

///

///車両の動きがある場合は左に曲がる

///

public void MoveLeft()

{

if(_isMoving)

{

Console.WriteLine( "左に回した");

}

else

{

Console.WriteLine( "エラー:車は停止していますが、回転機能は現在使用できません");

}

}

///

///同様の方法で右回転

///

public void MoveRight()

{

if(_isMoving)

{

Console.WriteLine( "右折しました");

}

else

{

Console.WriteLine( "エラー:車はまだ移動していません。"右に曲がることは現在不可能な動作です。 ");

}

}

}

}

</ p>
  • 評価: