オブジェクトとは何か?
プログラミング用語って、どうしてカタカナが多いんでしょうね。
慣れるまでは区別するのもひと苦労です。
毎度、何でも屋イガジーです。
でも考えてみれば、専門用語はプログラミングに限りません。
例えば、ゴルフが好きな人は
パー、とかボギーとか、バーディとか、アイアンなどのカタカナ語を
いつの間にか覚えてますよね。
麻雀好きな人は、国士無双だとか、九蓮宝燈とか、大三元とか
(これらは、カタカナじゃないですが)複雑な役やルールを覚えてます。
プログラミング用語も、何度も何度も接しているうちに
身についてきますから、最初からひるまないようにしましょう。
という訳で今日は「オブジェクト」とは何か?の説明を試みます。
いきなり書いてしまうと、オブジェクトとは「実体」です。
「処理(メソッド)とデータを持ったプログラムの実体」です。
「それってクラス?」と思うかもしれません。
「クラス」も色々な意味を持ちますが、オブジェクトと対比してみると
抽象的なものが「クラス」で、実物が「オブジェクト」になります。
例えば、「犬」が「クラス」だとすると、
うちで飼ってる「ポチ」という名の犬が「オブジェクト」です。
隣で飼ってる「タロ」という名の犬も「オブジェクト」です。
Label というクラスは、Label aa=new Label(“hoge”);と宣言して
以後 aa を使うのですが、この aa が指し示している実体がオブジェクト。
Label bb=new Label(“fuga”);と宣言すると、bbもオブジェクトを指します。
aa と bb は、同じ「ラベルというクラス」ですが、実体(オブジェクト)は別です。
ホチとタロが同じ「犬という生き物」でも、別の個体なのと同じです。
「あれ? aa ってインスタンスというモノじゃないの?」
そうですね、aa や bb はインスタンスです。ややこしいですね。
正確には、aa が指しているものがオブジェクトです。
オブジェクトを指し示している変数aaがインスタンスです。
new によって、実体(オブジェクト)が生まれ、インスタンス(変数)に
そこへのポインタ(アドレス)がセットされるのです。
以上のように、管理人イガジーは理解しているのですが、誤解してたらごめんなさい。
この記事へのコメントはこちら