JavaA2Z

KAB-studio > プログラミング > JavaA2Z > ラッパーとは

ラッパー

日本語 包む者
英語 wrapper
ふりがな らっぱー
フリガナ ラッパー

解説

他のクラス変数、システムを「覆い隠す」ために存在するクラス
 
他のクラス変数フィールドとして持ち、隠蔽し管理し操作するためのクラスを「ラッパークラス」「ラップクラス」と呼ぶ。
言語仕様的な決まりはなく、明確な定義もない。
通常ラッパークラスは、クラスもしくは変数ひとつを「包み込む対象」として選び、それをフィールドとして持つ。そのフィールドへは直接外からアクセスできないようにし、間接的にアクセスするためのメソッドを用意する。そのメソッドは「包み込む対象」を安全かつ十分に使用できるものを用意する。

このような条件に当てはまるクラスを一般的にそう呼ぶ、ということである。
 
ラッパークラスとする目的は様々である。
目的のひとつに、隠す対象のクラスが使いにくいため、使いやすいメソッドを提供するため、というものがある。引数が複雑だったり、複数のメソッドを順番に呼ぶ必要があったりする場合に、これらを使用せず簡易な方法を用意する目的で、包み込みメソッドを用意するわけである。
また、隠す対象が直接操作されるのを避けるためだったり、隠す対象が持つ機能とは別の形での機能を提供するためだったり、といったことがラッパークラスを作る目的となる。
いずれも、「使う側」と「隠す対象」の間に「ラッパークラスメソッド」を挟んでいる。このメソッドを仲介役とすることで、「隠す対象」への直接のアクセスを避けつつ、付加価値を加えている。
 
ラッパークラスの具体例のひとつに、intに対するIntegerクラスが挙げられる。
Integerクラスintのラッパークラスとして機能し、intが持たない「クラスとしての機能」を提供する。APIリファレンスには「The Integer class wraps a value of the primitive type int in an object.」と書かれており、この「wraps」が「覆い隠す」という意味になる。

プリミティブ型は、全てのに対応するラッパークラスが存在する。
プリミティブ型に対応するラッパークラスは、以下の通り。
 
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble
charCharacter
booleanBoolean
 
これらのラッパークラスは「インスタンスは不変」なため、インスタンス内の値を変更することはできない。
この機能によって、ラッパークラスはよりプリミティブ型に近い扱いが可能となっている。
詳しくは「インスタンスは不変」の項目を参照
また、オートボクシングによってプリミティブ型との変換が簡単にできるようになっている。詳しくは「ボクシング変換」「アンボクシング変換」の項目を参照
 
これらはプリミティブ型にはない便利なメソッドを持ち、かつプリミティブ型が持たない「参照」を用いた処理をうことができる。
特にこれはArrayListクラス等のコレクションを使用する場合に必要となる。コレクションクラス要素Objectクラスとなっているため、プリミティブ型を格納することができない。また、ジェネリッククラスジェネリックメソッドパラメーター(「<T>」のこと)にもプリミティブ型を使用することができない。
そのため、コレクション要素プリミティブ型を使用したい場合には、その代わりに対応するラッパークラスを使用することになる。
また、ラッパークラスを使用することでプリミティブ型にはない「null」という状態を持つことができる。それにより、数値の入力を受け取る際に「入力なし」という状態を「null」で表現することができる。
 
「ラッパー」と言っても「Yo!」とか言う人達とは関係ないので注意。
意味的には「クレラップ」「サランラップ」の方が近い。

参考サイト


(KAB-studioからのおしらせです)

サンプルプログラム(とか)サンプルを別ウィンドウで表示サンプルをクリップボードへコピー(WindowsでIEの場合のみ)

他のクラス、変数、システムを「覆い隠す」ために存在するクラス。
 
他のクラスや変数をフィールドとして持ち、隠蔽し管理し操作するためのクラスを「ラッパークラス」「ラップクラス」と呼ぶ。
言語仕様的な決まりはなく、明確な定義もない。
通常ラッパークラスは、クラスもしくは変数ひとつを「包み込む対象」として選び、それをフィールドとして持つ。そのフィールドへは直接外からアクセスできないようにし、間接的にアクセスするためのメソッドを用意する。そのメソッドは「包み込む対象」を安全かつ十分に使用できるものを用意する。

このような条件に当てはまるクラスを一般的にそう呼ぶ、ということである。
 
ラッパークラスとする目的は様々である。
目的のひとつに、隠す対象のクラスが使いにくいため、使いやすいメソッドを提供するため、というものがある。引数が複雑だったり、複数のメソッドを順番に呼ぶ必要があったりする場合に、これらを使用せず簡易な方法を用意する目的で、包み込みメソッドを用意するわけである。
また、隠す対象が直接操作されるのを避けるためだったり、隠す対象が持つ機能とは別の形での機能を提供するためだったり、といったことがラッパークラスを作る目的となる。
いずれも、「使う側」と「隠す対象」の間に「ラッパークラスのメソッド」を挟んでいる。このメソッドを仲介役とすることで、「隠す対象」への直接のアクセスを避けつつ、付加価値を加えている。
 
ラッパークラスの具体例のひとつに、int型に対するIntegerクラスが挙げられる。
Integerクラスはint型のラッパークラスとして機能し、int型が持たない「クラスとしての機能」を提供する。APIリファレンスには「The Integer class wraps a value of the primitive type int in an object.」と書かれており、この「wraps」が「覆い隠す」という意味になる。

プリミティブ型は、全ての型に対応するラッパークラスが存在する。
プリミティブ型に対応するラッパークラスは、以下の通り。
 
・byte → Byte
・short → Short
・int → Integer
・long → Long
・float → Float
・double → Double
・char → Character
・boolean → Boolean
 
これらのラッパークラスは「インスタンスは不変」なため、インスタンス内の値を変更することはできない。
この機能によって、ラッパークラスはよりプリミティブ型に近い扱いが可能となっている。
詳しくは「インスタンスは不変」の項目を参照。
また、オートボクシングによってプリミティブ型との変換が簡単にできるようになっている。詳しくは「ボクシング変換」「アンボクシング変換」の項目を参照。
 
これらはプリミティブ型にはない便利なメソッドを持ち、かつプリミティブ型が持たない「参照」を用いた処理を行うことができる。
特にこれはArrayListクラス等のコレクションを使用する場合に必要となる。コレクションクラスの要素はObjectクラスとなっているため、プリミティブ型を格納することができない。また、ジェネリッククラスやジェネリックメソッドの型パラメーター(「<T>」のこと)にもプリミティブ型を使用することができない。
そのため、コレクションの要素にプリミティブ型を使用したい場合には、その代わりに対応するラッパークラスを使用することになる。
また、ラッパークラスを使用することでプリミティブ型にはない「null」という状態を持つことができる。それにより、数値の入力を受け取る際に「入力なし」という状態を「null」で表現することができる。
 
「ラッパー」と言っても「Yo!」とか言う人達とは関係ないので注意。
意味的には「クレラップ」「サランラップ」の方が近い。
他のクラス、変数、システムを「覆い隠す」ために存在するクラス。
 
他のクラスや変数をフィールドとして持ち、隠蔽し管理し操作するためのクラスを「ラッパークラス」「ラップクラス」と呼ぶ。
言語仕様的な決まりはなく、明確な定義もない。
通常ラッパークラスは、クラスもしくは変数ひとつを「包み込む対象」として選び、それをフィールドとして持つ。そのフィールドへは直接外からアクセスできないようにし、間接的にアクセスするためのメソッドを用意する。そのメソッドは「包み込む対象」を安全かつ十分に使用できるものを用意する。
!
このような条件に当てはまるクラスを一般的にそう呼ぶ、ということである。
 
ラッパークラスとする目的は様々である。
目的のひとつに、隠す対象のクラスが使いにくいため、使いやすいメソッドを提供するため、というものがある。引数が複雑だったり、複数のメソッドを順番に呼ぶ必要があったりする場合に、これらを使用せず簡易な方法を用意する目的で、包み込みメソッドを用意するわけである。
また、隠す対象が直接操作されるのを避けるためだったり、隠す対象が持つ機能とは別の形での機能を提供するためだったり、といったことがラッパークラスを作る目的となる。
いずれも、「使う側」と「隠す対象」の間に「ラッパークラスのメソッド」を挟んでいる。このメソッドを仲介役とすることで、「隠す対象」への直接のアクセスを避けつつ、付加価値を加えている。
 
ラッパークラスの具体例のひとつに、int型に対するIntegerクラスが挙げられる。
Integerクラスはint型のラッパークラスとして機能し、int型が持たない「クラスとしての機能」を提供する。APIリファレンスには「The Integer class wraps a value of the primitive type int in an object.」と書かれており、この「wraps」が「覆い隠す」という意味になる。
!
プリミティブ型は、全ての型に対応するラッパークラスが存在する。
プリミティブ型に対応するラッパークラスは、以下の通り。
 
・byte → Byte
・short → Short
・int → Integer
・long → Long
・float → Float
・double → Double
・char → Character
・boolean → Boolean
 
これらのラッパークラスは「インスタンスは不変」なため、インスタンス内の値を変更することはできない。
この機能によって、ラッパークラスはよりプリミティブ型に近い扱いが可能となっている。
詳しくは「インスタンスは不変」の項目を参照。
また、オートボクシングによってプリミティブ型との変換が簡単にできるようになっている。詳しくは「ボクシング変換」「アンボクシング変換」の項目を参照。
 
これらはプリミティブ型にはない便利なメソッドを持ち、かつプリミティブ型が持たない「参照」を用いた処理を行うことができる。
特にこれはArrayListクラス等のコレクションを使用する場合に必要となる。コレクションクラスの要素はObjectクラスとなっているため、プリミティブ型を格納することができない。また、ジェネリッククラスやジェネリックメソッドの型パラメーター(「<T>」のこと)にもプリミティブ型を使用することができない。
そのため、コレクションの要素にプリミティブ型を使用したい場合には、その代わりに対応するラッパークラスを使用することになる。
また、ラッパークラスを使用することでプリミティブ型にはない「null」という状態を持つことができる。それにより、数値の入力を受け取る際に「入力なし」という状態を「null」で表現することができる。
 
「ラッパー」と言っても「Yo!」とか言う人達とは関係ないので注意。
意味的には「クレラップ」「サランラップ」の方が近い。

この単語を含むページ

「みだし」に含まれているページ

はてなブックマーク 詳細を表示 はてなブックマーク ブックマーク数
livedoorクリップ 詳細を表示 livedoorクリップ ブックマーク数
Yahoo!ブックマーク 詳細を表示 users
del.icio.us 登録する RSSに登録
サンプルを別ウィンドウで表示
サンプルをクリップボードへコピー(WindowsでIEの場合のみ)
update:2010/03/12
このページは、Javaプログラミング言語についての用語を網羅した辞書「JavaA2Z」の一ページです。
詳しくは「JavaA2Z」表紙の説明をご覧ください。