第3回 人間が「もの」ってどういうこと?
荒井亜子
2008/1/11
編集長にダメの烙印(らくいん)を押された新人編集者が、業務の合間に身を削って、必死でプログラミングを学習し、学んだことを皆さんにお伝えする連載。「こんな奴でも頑張っているのか」と、これからJavaを始める人や、一度Javaで挫折をした人にはぜひ読んで糧にしていただきたい。記事の最後には、Javaの講師よりアドバイスを掲載 |
|
連載第1回「変数って、変な数のことでしょ」、第2回「a=a+bなんてあり得なくない?」では、プログラミングの意味、Javaの基本文法などについて学んだ。第3回である今回はいよいよ、Javaの核ともいえるオブジェクト指向について学ぶ。オブジェクト指向なんて言葉すら聞いたことがない新人編集者。どうなることやら。
■朝から授業は結構つらい
講習会の朝は早い。午前9時。教室にはほとんどの受講者がスーツを着用して集まっていた。その中には、いつにも増してだるそうな新人編集者の姿もあり、あろうことか机にうつぶせになってうとうとしていた。 普段、スッピンに帽子・眼鏡スタイルで11時ごろ出社し、12時過ぎにランチ&メイクに出掛けるという破たんしかけた社会人生活を送る新人編集者にとって、この時間は起きているだけでもとてもつらい。
荒井 | 眠いよ〜、眠いよ〜 |
もはや独り言が止まらない午前9時20分。先生が教室に入ってきた。
先生 | 皆さんおはようございます。ラウンジにコーヒーと紅茶を無料でご用意していますので、ご自由にお召し上がりください |
荒井 | 睡魔を追い払うために、コーヒーをいただくことにしよう |
ラウンジのコーヒーカウンターの風景。窓からはさわやかな景色 |
一目散にラウンジへ向かい、アイスコーヒーを一気飲み。これだけでは足りないと思い、教室にも2杯持ち込んだ。30分くらいすると、コーヒー効果で目がさえてきたようだ。
荒井 | これで頑張れる。ところで先生、Javaは何でJavaっていうの? そんな名前のコーヒーもあるよね |
先生 | Javaの名称の由来には、「コーヒーを飲みながら手軽に学べる言語」という説があります |
荒井 | コーヒーを飲みながら勉強してるけど、全然手軽じゃない! |
先生 | (笑) |
■オブジェクト指向
荒井 | いままで書いてきたソースコードは、頭がclassという記述から始まっているけど、クラスには意味があるんですか? |
先生 | クラスを簡単に説明すると、データと処理をまとめたものです。Java言語のプログラムは、複数のクラスが組み合わさってできているのです |
荒井 | でも、クラスに分けなくちゃいけないのが面倒くさいです。覚えることが1つ増えるわけだし…… |
先生 | クラスは、とても便利な機能なんですよ。クラスがないプログラミング言語は、動作の記述を一から十まで全部記述していかなければならず、複雑なプログラムを作るときは大変な手間を要しました。でも、Java言語では、データや処理がまとめられたクラスという部品を作っておき、その部品を組み合わせるだけで、もっと複雑なプログラムに対応できるようになるんです |
荒井 | そうか。便利ならやろう |
これもJavaのクラス(だじゃれです。すみません) |
先生 | クラスのように部品ごとにプログラムを作り上げていくことをオブジェクト指向といいます |
荒井 | 第1回でやった、Javaの3大特徴の1つですね |
先生 | そうです! オブジェクト指向は、初めてだと厄介かもしれませんが、Javaプログラミングにおいて大切なところなので、少し丁寧に見ていきます |
荒井 |
先生 | Javaプログラムの基本となっているクラスはそれだけでは利用できない、いわば設計図のようなものです。この設計図を基に、実体を生成する必要がある。この実体がオブジェクトです |
荒井 |
先生 | オブジェクトは「もの」という意味です。現実世界の事象を「もの」ととらえることがオブジェクト指向。ですから、ここでは車も会社も人間も「もの」です |
荒井 | わ! 人間て「もの」なんですか? |
先生 | う〜ん。人間は生き物ですが、オブジェクト指向では、「もの」とモデル化して考えます。よく、クラスがたいやきの型でオブジェクトがたいやきといわれたりします。また、クラスはデータや処理などさらに小さな部品で構成されているんですよ |
class YasaiJuice{ String name; // インスタンス変数 int id; // インスタンス変数 String getName(){ // メソッド return name; } } |
ソースコード1 野菜ジュースの商品名を取得するクラス |
図1 クラスの図とオブジェクト |
先生 | 図1の「クラスの図を表したソースコード1」にあるように、クラスはデータと処理をひとまとめにしたものです。クラス内に直接宣言された変数のことをインスタンス変数、処理のことをメソッドといいます。インスタンス変数やメソッドのことをクラスのメンバと呼びます |
インスタンス変数の構文 |
[修飾子] データ型 インスタンス変数名; ※インスタンス変数の定義例 ※修飾子とは、変数、メソッドの宣言の際に付与され、それらの権限を定めるものです。 |
インスタンス変数とローカル変数との違いとは? |
今回のインデックス |
クラスとオブジェクトが何かを理解する (1ページ) |
インスタンス変数とローカル変数との違いとは? (2ページ) |
@IT自分戦略研究所は2014年2月、@ITのフォーラムになりました。
現在ご覧いただいている記事は、既掲載記事をアーカイブ化したものです。新着記事は、 新しくなったトップページよりご覧ください。
これからも、@IT自分戦略研究所をよろしくお願いいたします。