Java
 Computer >> コンピューター >  >> プログラミング >> Java

Javaでの抽象化とカプセル化


カプセル化 カプセル化は、4つの基本的なOOP概念の1つです。他の3つは、継承、ポリモーフィズム、および抽象化です。

Javaでのカプセル化は、データ(変数)とデータ(メソッド)に作用するコードを1つのユニットとしてまとめるためのメカニズムです。カプセル化では、クラスの変数は他のクラスから隠され、現在のクラスのメソッドを介してのみアクセスできます。したがって、データの非表示とも呼ばれます。

Javaでカプセル化を実現するには-

  • クラスの変数をプライベートとして宣言します。
  • 変数値を変更および表示するためのパブリックセッターメソッドとゲッターメソッドを提供します。
抽象化

抽象化とは、イベントではなくアイデアを扱う品質です。たとえば、電子メールの場合、電子メールを送信するとすぐに何が起こるかなどの複雑な詳細を考えると、電子メールサーバーが使用するプロトコルはユーザーに表示されません。したがって、電子メールを送信するには、コンテンツを入力し、受信者のアドレスを指定して、[送信]をクリックするだけです。

同様に、オブジェクト指向プログラミングでは、抽象化は実装の詳細をユーザーから隠すプロセスであり、機能のみがユーザーに提供されます。つまり、ユーザーは、オブジェクトの実行方法ではなく、オブジェクトの実行内容に関する情報を入手できます。

Javaでは、抽象化は抽象クラスとインターフェースを使用して実現されます。


  1. SwingはJavaでスレッドセーフですか?

    いいえ、 Java Swing コンポーネントはJavaではスレッドセーフではありません。 Swingコンポーネントがスレッドセーフではない理由 Java Swingがスレッドセーフではない主な理由の1つは、そのコンポーネントを拡張するタスクを簡素化することです。 Java Swingのもう1つの理由は、ロックの取得と解放、および状態の復元に伴うオーバーヘッドのため、スレッドセーフではありません。 。 一部のJavaSwingコンポーネントメソッドは、 repaint()、revalidate()などのマルチスレッドアクセスをサポートします。 、および invalidate()メソッド

  2. Javaでの抽象化

    辞書によると、抽象化 イベントではなくアイデアを扱う品質です。たとえば、電子メールの場合、電子メールを送信するとすぐに何が起こるかなどの複雑な詳細を考えると、電子メールサーバーが使用するプロトコルはユーザーに表示されません。したがって、電子メールを送信するには、コンテンツを入力し、受信者のアドレスを指定して、[送信]をクリックするだけです。 抽象化は、実装の詳細をユーザーから隠すプロセスであり、機能のみがユーザーに提供されます。つまり、ユーザーは、オブジェクトの実行方法ではなく、オブジェクトの実行内容に関する情報を入手できます。 Javaでは、抽象化は抽象クラスとインターフェースを使用して