第一級オブジェクト(ファーストクラスオブジェクト、)は、あるプログラミング言語において、たとえば生成、代入、演算、(引数・戻り値としての)受け渡しといったその言語における基本的な操作を制限なしに使用できる対象のことである。ここで「オブジェクト」とは広く対象物・客体を意味し、必ずしもオブジェクト指向プログラミングにおけるオブジェクトを意味しない。第一級オブジェクトは「第一級データ型に属す」という。この言葉は1960年代にChristopher Stracheyによって「」という文脈で初めて使われた。言語によって異なるが、第一級オブジェクトは概ね次のような性質をもつ。例えば、CやC++では、数値データや構造体は代入で使用でき、関数に渡すこともできる。しかし同じCやC++でも、配列は、代入することも関数に渡すこともできない。また、関数から返すこともできない。配列のおのおのの要素についてはできるが、配列全体をひとつとして扱うことはできない。そのため、C/C++の配列は、第一級オブジェクトではない。また、C/C++での関数は実行時に作成することができない。したがってC/C++では関数も第一級オブジェクトではない。ただし、関数ポインタを使用することで上の性質の多くを満たすことができるため、C/C++の関数を第二級オブジェクトという場合がある。FORTRAN 66における文字列は変数に格納することができないため、第一級オブジェクトではない。Smalltalkにおいては、関数(メソッド)はクラスと同じように第一級オブジェクトである。演算子(+、-)もSmalltalkにおいてはメソッドなので、やはり第一級オブジェクトである。しかしながら、新しい演算子は定義できても優先順位を変更できないなどの理由から、それらは第一級オブジェクトではないとする者もいる。ほぼすべての言語において、整数や浮動小数点数などの最も単純なデータ型は第一級オブジェクトである。古い言語においては配列は第一級オブジェクトではなかった。それらはオブジェクトとして代入することはできず、その要素のみを直接処理することしかできなかった。
出典:wikipedia
LINEスタンプ制作に興味がある場合は、
下記よりスタンプファクトリーのホームページをご覧ください。