解説
「ラッパークラス」(wrapper class)や、「ラッパーオブジェクト」(wrapper object)は、オブジェクトではないけれど、オブジェクトとしてあつかいたい値を、包む(wrapする)クラスやオブジェクトのことです。
たとえば文字列がオブジェクトではない値(プリミティブ値)のプログラミング言語があったとします。そうしたプログラミング言語で、「hogeString.split(',')」のように、文字列に対してメソッドを使いたいとします。
そうした場合、文字列を包んでオブジェクトとしてあつかうためのStringクラスを用意して、「new String(hogeString).split(',')」のように、文字列をオブジェクトに変換してメソッドを使うという方法がとれます。
こうしたとき、Stringはラッパークラスと呼ばれます。
プログラミング言語によっては、プリミティブ値のあとにプロパティやメソッドを書くと、自動的にラッパーオブジェクトにして、プロパティやメソッドを使えるようにするケースもあります。
そうしたプログラミング言語では、ラッパークラスやラッパーオブジェクトを意識することはないですが、知識として知っておくとよいです。
サンプル
「ラッパークラスやラッパーオブジェクト」のサンプルです。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>「ラッパークラスやラッパーオブジェクト」のサンプル</title>
<style> #output { font-size: 32px; line-height: 1.5; white-space: pre-wrap; } </style>
</head>
<body>
<pre id="output"></pre>
<script>
window.addEventListener('DOMContentLoaded', e => {
// 出力用の関数
const print = function() {
const el = document.querySelector('#output');
el.textContent += [...arguments].map(x => `${x}`).join(', ') + '\n';
};
// プリミティブ値の文字列と、Stringオブジェクト
let text1 = 'hoge hoge';
let text2 = new String(text1);
print('text1の型', typeof text1);
print('text2の型', typeof text2);
// Stringオブジェクトのプロパティやメソッドの一覧
let props = Object.entries(Object.getOwnPropertyDescriptors(Object.getPrototypeOf(text2))).map(x => x[0]).join(', ');
print('Stringオブジェクトのプロパティやメソッドの一覧', props);
});
</script>
</body>
</html>
text1の型, string text2の型, object Stringオブジェクトのプロパティやメソッドの一覧, length, constructor, anchor, at, big, blink, bold, charAt, charCodeAt, codePointAt, concat, endsWith, fontcolor, fontsize, fixed, includes, indexOf, isWellFormed, italics, lastIndexOf, link, localeCompare, match, matchAll, normalize, padEnd, padStart, repeat, replace, replaceAll, search, slice, small, split, strike, sub, substr, substring, sup, startsWith, toString, toWellFormed, trim, trimStart, trimLeft, trimEnd, trimRight, toLocaleLowerCase, toLocaleUpperCase, toLowerCase, toUpperCase, valueOf
フィードバックお待ちしております!
ご感想、解説してほしい用語、解説内容のアドバイスなどございましたら、FacebookやX(旧Twitter)などでお気軽に編集部までお寄せください。よろしくお願いいたします。
この記事は参考になりましたか?
既に会員の方はを行ってください。
- マンガで分かるプログラミング用語辞典連載記事一覧
- この記事の著者
-
柳井 政和(ヤナイ マサカズ)
クロノス・クラウン合同会社 代表社員http://crocro.com/オンラインソフトを多数公開。プログラムを書いたり、ゲームを作ったり、記事を執筆したり、マンガを描いたり、小説を書いたりしています。「めもりーくりーなー」でオンラインソフト大賞に入賞。最近は、小説家デビューして小説も書いています(『裏切りのプログラム』他)。面白いことなら何でもOKのさすらいの企画屋です。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
