ホームページ >Java >&#&チュートリアル >Java の抽象化
Java テクノロジでは、主に oops の概念で構築されています。抽象化は、oops (オブジェクト指向プログラミング システム) の概念の 1 つでもあり、データを非表示にするプロセスとして示されます。詳細は示されませんが、ユーザー画面には、非表示データに関連する関連情報のみが表示されます。 Java の抽象化では、「抽象クラスとインターフェイス」の助けを借りてこれらの概念を使用できます。これら 2 つのタイプは Java で同時に使用されます。あるいは、ユーザーの要件に基づいて、両方のプロセスでいずれかのタイプを使用できる場合があります。プログラムで使用されます。
無料ソフトウェア開発コースを始めましょう
Web 開発、プログラミング言語、ソフトウェア テスト、その他
構文
抽象化は、Java プログラムで使用される 2 つの異なるタイプの構文に使用されます。
import packages; abstract class names { -----some logic codes--- } interface names { ----Some logic codes---- }
上記のコードは、Java プログラムで適用可能な抽象化のための基本的な構文です。抽象クラスを使用すると、抽象メソッドと非抽象メソッドの両方が使用されますが、インターフェイスは非抽象メソッドのみを受け入れます。これら 2 つの概念の間には、同様の違いがいくつかあります。
抽象化では、Java オブジェクト内の不要な詳細を非表示にします。 主題に関する関連情報のみを表示します。 主にマップ インターフェイスのマップと呼ばれる Java コレクション インターフェイスと比較します。 ハッシュマップのような派生クラスがあり、キーと値のペアを格納します。 get() メソッドや put() メソッドなどのいくつかのメソッドを使用してユーザー データを保存し、バックエンドからデータを取得します。
主に抽象化では、1. データの抽象化と 2. コントロールの抽象化という 2 つの異なる方法が提供されます。データ抽象化は、難しい種類のデータを作成するために使用され、データ型を含むいくつかの有用なコンテンツを画面に公開するために使用されます。制御抽象化では、一部のデータを他のプログラミング言語で記述するプロセスは、データの保存と取得のためのコードを複数回記述するさまざまなシナリオで行われるため、これらのタイプのデータが識別され、単一の作業と結合されます。コントロールの抽象化として。
抽象化を達成するためにインターフェイス型を使用するということは、おそらくこれらを達成する必要があることを意味しますが、抽象クラスでは抽象化プロセスで完全には達成されず、部分的に完了する必要があります。抽象クラスを使用する場合、これらのクラスに拡張して完全または具体的なクラスのインスタンスに使用したい場合、これらのクラスのインスタンスを作成することはできません。抽象化を使用して宣言したメソッドの実装は変更される可能性がありますが、抽象クラスのインスタンスを作成するために new 演算子を使用すると、コンパイル エラーがスローされます。
以下に挙げる例を次に示します。
コード:
public abstract class Main { private String names; private String city; public Main(String nm, String cty){ this.names=nm; this.city=cty; } public abstract void work(); @Override public String toString(){ return "Names="+this.names+"::City="+this.city; } public void changeName(String newNames) { this.names = newNames; } } public class ClientMain extends Main { private int empId; public ClientMain(String nm, String cty, int id) { super(nm, cty); this.empId=id; } @Override public void work() { if(empId == 0){ System.<em>out</em>.println("Invalid name"); }else{ System.<em>out</em>.println("Employees List!!"); } } public static void main(String args[]){ //coding in terms of abstract classes Main m = new ClientMain("siva","tirupur",1); Main m1 = new ClientMain("raman","chennai",234); m.work(); m1.work(); //using method implemented in abstract class - inheritance m1.changeName("Sivaraman"); System.<em>out</em>.println(m1.toString()); } }
出力:
コード:
interface Animals { public void animalSounds(); public void sleep(); } class Sample implements Animals { public void animalSounds() { System.<em>out</em>.println("Animal Sounds"); } public void sleep() { System.<em>out</em>.println("Beep"); } } class ClientMain { public static void main(String[] args) { Sample s = new Sample(); s.animalSounds(); s.sleep(); } }
出力:
コード:
@FunctionalInterface interface SquareofNumbers { int numbers(int x); } class ClientMain { public static void main(String args[]) { int a = 6; SquareofNumbers s = (int i)->i*i; int result = s.numbers(a); System.<em>out</em>.println(result); } }
出力:
上記の 3 つの例では、Java アプリケーションで抽象化を実装するための抽象クラスとインターフェイスの基本的な使用法を使用しました。最後の例では、指定された数値を 2 乗するために Java で使用される関数型インターフェイスと呼ばれる概念を使用しました。関数型インターフェイスは次と同じです。インターフェイスの概念ですが、プログラム内で複数の抽象メソッドを許可しないという点で、複数の抽象メソッドを使用した場合、関数型インターフェイスを使用しているときに「予期しない @Functional Interface 注釈」のようなエラーがスローされます。また、注釈も宣言します。これは、データ概念に関するデータにとって非常に役立ちます。Java ではメタデータ技術が必要ですが、アノテーションと呼ばれるこの種の技術を使用しました。また、最後の例で使用したラムダ式と呼ばれる別の概念も使用しました。コードスペースが削減されるため、コードの冗長性が非常にシンプルになり、プログラムの複雑さも軽減され、複雑なコーディングを簡単に作成できるようになります。
クラス内にメソッドのいずれかを定義した場合は、そのクラスも抽象クラスとして宣言する必要があります。また、抽象クラスを拡張して内部クラスのメソッドのいずれかで使用する場合は、その前にそのクラスのすべてのメソッドを実装する必要があります。 Java テクノロジの抽象クラス 抽象クラスのインスタンスを作成できない Java では、抽象クラスを Final アクセス修飾子またはキーワードとして宣言できません。抽象クラスまたはクラス内のメソッドで Final を使用すると、宣言できるからです。アプリケーションの実行プロセス全体では変更されません。プライベート修飾子も抽象化では許可されません。親子関係に影響します。関数/メソッドはサブクラス.
では許可されていないため、抽象クラスでは継承が影響を受ける必要があります。上記の抽象化の概念は、oops の基本的な理解ですが、Java テクノロジでも同じことを実装します。抽象化を実現するには、インターフェイスと抽象クラスで使用する必要があります。ただし、Java 最新バージョンでは、新機能に応じて異なる場合があります。 .
以上がJava の抽象化の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。