Javaのラッパークラス

王林
リリース: 2024-08-30 16:00:11
オリジナル
723 人が閲覧しました

ラッパークラスは、java.langライブラリの重要なクラスです。ラッパー クラス オブジェクトは、プリミティブ データ型のラッパーを作成します。ラッパー クラスのオブジェクトの作成中に、プリミティブ データ型が格納されるメモリ内にスペースが作成されます。ラッパー クラスは、オブジェクトからプリミティブ データへの変換、およびプリミティブ データからオブジェクトへの変換 (ボックス化/アンボックス化など) のためのいくつかの機能を提供します。オブジェクトからプリミティブ データへ、およびプリミティブ データからオブジェクトへの変換は自動的に行われます。プリミティブ データ型とは、int、float、char、double、byte などを指します。

無料ソフトウェア開発コースを始めましょう

Web 開発、プログラミング言語、ソフトウェア テスト、その他

構文:

以下の宣言は、Java プログラム内で Wrapper クラスがどのように動作するかを示しています。

例:

int i = 100;
ログイン後にコピー

以下の例では、i が整数データ型であることがわかります。 Java では、整数をオブジェクトの型として渡す必要がある場合があります。この場合、ラッパー クラスを使用して整数をオブジェクトに変換できます。

コード:

Integer intVal = new Integer(i);
ログイン後にコピー

上記の構文では、Integer クラス オブジェクトを使用してプリミティブ データ型がどのようにオブジェクトに変換されるかを確認できます。また、プリミティブ データ型はオブジェクトとしてラップされているとも言えます。

Java でのラッパー クラスの使用

ラッパー クラスの使用例をいくつか以下に示します。

  • ラッパー クラスを使用すると、オブジェクトをプリミティブ データ型に変換したり、その逆の変換を行うことができます。
  • ラッパー クラスを使用すると、プログラムのパフォーマンスが向上します。
  • ラッパー クラスはオブジェクトのシリアル化とその逆に役立ちます。プリミティブ データをオブジェクトに変換できます。場合によっては、オブジェクトをストリーミングする必要があります。その場合、ラッパー クラスはそれらをシリアル化形式に変換できます。
  • いくつかの重要なメソッドは、コレクション内の検索と並べ替えを実行するために使用されるラッパー クラスによって提供されます。
  • 減算と加算、これらのタイプの演算では、Wrapper クラスのプリミティブ整数の古い値を変更できません。これが、Wrapper クラスが不変として知られる理由です。
  • マルチスレッドプロセスではプロセスを同期するためのオブジェクトが必要なため、Wrapperクラスがマルチスレッドプロセスで使用されます。ラッパー クラスは、さまざまなデータ型をオブジェクトに変換します。

JavaAPI に基づいて、Wrapper クラス階層は Object をさまざまなプリミティブ クラスの最上位に保ちます。数値、文字、およびブール値は、オブジェクトの直後の第 2 レベルにあります。 Byte、Short、Int、Long、Float、Double は、第 3 レベルの Number データ型に分類されます。

ラッパー クラスは、データ型の変換/ラッピング、またはオブジェクトのプリミティブ データ型への変換のために、オートボックス化とボックス化解除という 2 つのメカニズムを使用します。

  • オートボクシング: オートボクシングとは、Wrapper クラスを使用したプリミティブ データ型のオブジェクトへの自動変換を指します。これはオートボクシングとして知られています。以下の例では、int が Integer オブジェクトに変換され、例 c では、別のプリミティブ データ型が対応するオブジェクトに変換されています。
  • ボックス化解除: ボックス化解除は、自動ボックス化の逆のプロセスです。ラッパー クラス オブジェクトを対応するプリミティブ データ型に自動的に変換することは、アンボックス化と呼ばれます。以下の例 b では、Integer オブジェクトが int プリミティブ データ型に変換されています。

Java のラッパー クラスの例

以下は Java のラッパー クラスのさまざまな例です:

例 #1

以下の例では、ラッパー クラスを通じて int i からオブジェクト k への手動変換がどのように行われるかを確認できます。

コード:

import java.util.*;
class WrapperExample {
public static void main(String args[]){
int j=100;
//converting int j to integer k as an object
Integer k = new Integer(j);
System.out.println(j + "\n" + k);
}
}
ログイン後にコピー

出力:

Javaのラッパークラス

上記の例では、変換が明示的にどのように行われるかを確認できます。

例 #2

以下の例では、この変換プロセスが時々自動的に行われることがわかります (オートボックス化と呼ばれます)。

コード:

import java.util.*;
class AutoboxingUnboxingExample {
public static void main(String args[]){
int j = 500;
ArrayList<Integer> arrValues = new ArrayList();
arrValues.add(j);  // autoboxing takes place implicitly
System.out.println(arrValues.get(0));
}
}
ログイン後にコピー

出力:

Javaのラッパークラス

上記の例では、int 値はオブジェクトとして暗黙的にオブジェクトに変換されます。さらに、この値は ArrayList.

から取得できます。

例 #3

この例では、Unboxing の実装について説明します。アンボックス化は、オートボックス化の逆のプロセスです。

コード:

import java.util.*;
class AutoboxingUnboxingExample {
public static void main(String args[]){
ArrayList<Integer> arrValues = new ArrayList();
arrValues.add(250);
//unboxing here as int data type from Integer object
int k = arrValues.get(0);
//value printed is in primitive data type
System.out.println(k);
}
}
ログイン後にコピー

出力:

Javaのラッパークラス

上記の例では、ArrayList オブジェクト フィールドが k プリミティブ データ型、つまり int k に変換されます。

Example #4

The following given example have all the details of Autoboxing & Unboxing.

Code:

import java.util.*;
class WrapperConversionExample {
public static void main(String args[]){
int i = 15;
float j = 9.6f;
double k = 120.8;
byte l = 1;
//creating instance of Integer object
Integer iObj = new Integer(i);
//creating instance of Float object
Float fObj = new Float(j);
//creating instance of Double object
Double dObj = new Double(k);
//creating instance of Double object
Byte bObj = new Byte(l);
//value printed is in object
System.out.println("Value as an Integer object > " + iObj);
System.out.println("Value as a Float object > " + fObj);
System.out.println("Value as a Double object > " + dObj);
System.out.println("Value as a Byte object > " + bObj);
//primitive data type from the object
int m = iObj;
float n = fObj;
double o = dObj;
byte p = bObj;
//value printed is in primitive data type
System.out.println("Value as an int primitive type > " + m);
System.out.println("Value as a float primitive type > " + n);
System.out.println("Value as a double primitive type > "+ o);
System.out.println("Value as a byte primitive type > " + p);
}
}
ログイン後にコピー

Output:

Javaのラッパークラス

In the above-given program, we can see the implementation of Wrapper classes. Wrapper classes are converting the primitive data type to object & object to the primitive data type. The wrapper class provides separate classes for each primitive data type.

Conclusion

Through the Wrapper classes, we can easily understand autoboxing & unboxing how conversion takes place from primitive to object & its vice versa, which can be easily understood through Wrapper classes. For each of the primitive data types, there is a dedicated class in java.

以上がJavaのラッパークラスの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート