Javaのラッパークラスとは何ですか? Java パッケージング クラスのアプリケーション シナリオの概要

不言
リリース: 2018-09-14 16:32:22
オリジナル
8411 人が閲覧しました

この記事では、Java のパッケージング クラスとは何ですか? Java パッケージング クラスのアプリケーション シナリオの紹介は、必要な方の参考になれば幸いです。

今日は、Java パッケージング クラスの起源と、自動ボックス化とボックス化解除の概念と原則について説明します。

パッケージ化タイプとは

Java 設計では、当初、8 つの基本データ型と、対応する 8 つのパッケージ化データ型が提供されていました。 Java がオブジェクト指向プログラミング用の高級言語であることはわかっているので、ラッパー型はまさに、オブジェクト指向プログラミングでは基本的なデータ型が使用できないという問題を解決するために提供されるものです。

以下は、基本的なデータ タイプと対応するパッケージング タイプです。

#基本データ型パッケージ化タイプbyteバイトブール値ブール値##short##charCharacterintIntegerlongLongfloatFloatdoubleDouble次は、パッケージング タイプの継承構造図です。
Short

#上の表から、基本タイプとパッケージング タイプを包括的に理解できます。

Javaのラッパークラスとは何ですか? Java パッケージング クラスのアプリケーション シナリオの概要パッケージ化クラスのアプリケーション シナリオ

1. コレクション クラスのジェネリックスはパッケージ化クラスのみにすることができます。デフォルト値;

// 编译报错
List<int> list1 = new ArrayList<>();

// 正常
List<Integer> list2 = new ArrayList<>();
ログイン後にコピー

基本データ型のメンバー変数にはデフォルト値があります。たとえば、上記のコードの status のデフォルト値は 0 です。定義内の 0 が失敗を表す場合、問題が発生します。ラッパー クラス Integer のデフォルト値は null なので、デフォルト値の影響はありません。

3. メソッド パラメーターは null 値を定義できます。

private int status;
ログイン後にコピー
上記のコードを見ると、メソッド パラメーターは基本データ型 int を定義しているため、数値を指定する必要があります。多くの場合、null を渡すことができることが望ましいため、この場合はパッケージ化クラスを使用する方が適切です。

さらに多くのアプリケーション シナリオがあるため、1 つずつリストすることはしません。パッケージングのその他のアプリケーション シナリオについて話し合うために、メッセージを残していただければ幸いです。

自動ボックス化とボックス化解除Java 5 では、基本データ型とパッケージ化型の間の相互変換操作を提供する自動ボックス化およびボックス化解除メカニズムが追加されています。

オートボクシング

オートボクシングとは、基本データ型をパッケージ化タイプに自動的に変換することを意味します。Java 5 より前では、これを行うには基本データ型をパッケージ化タイプに変換するだけで済みました。 、以下のコードを参照してください。

private static void test1(int status){
    System.out.println(status);
}
ログイン後にコピー

上記 3 つのメソッドはすべて変換できますが、3 番目のメソッドは Java 5 より前ではコンパイルに失敗しており、3 番目のメソッドは現在の自動ボックス化機能でもあります。さらに、最初のコンストラクター メソッドは推奨されず、非推奨としてマークされています。

実際、自動ボックス化の原則は、2 番目のメソッドの Integer.valueOf メソッドなど、パッケージ化クラスの valueOf メソッドを呼び出すことです。

自動アンボックス化

自動アンボックス化とは、自動パッケージ化とは対照的に、パッケージ化タイプを基本的なデータ型に自動的に変換することを意味し、インストールおよび解凍の際に理解しやすくなります。 。

Integer i1 = new Integer(8);

Integer i2 = Integer.valueOf(8);

// 自动装箱
Integer i3 = 8;
ログイン後にコピー

上記の例を続けると、i3 を i4 に割り当てることが自動ボックス化機能です。自動ボックス化の原理は、i5 の Integer の intValue メソッドなど、パッケージ化クラスの xxValue メソッドを呼び出すことです。

自動ボックス化とボックス化解除は、上記の例に反映されているだけでなく、メソッドがパラメータを受け取り、オブジェクトがパラメータを設定したときに自動的にボックス化およびボックス化解除することもできます。

以上がJavaのラッパークラスとは何ですか? Java パッケージング クラスのアプリケーション シナリオの概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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