2018年02月05日

師匠のJava道場~第6回・クラスについて知るのじゃ!(前編)

弟子D:うむ、一か月ぶりだな! 弟子で……ぐはぁっ!!(師匠に蹴り飛ばされる)

師匠T:たわけが。 前回(第三回)の二番煎じはもういいわ。
さて、今月は、オブジェクトとクラスについて説明していくぞ。準備はいいかの?

弟子D:……

師匠T:おや、気絶したのか?

弟子D:ぐうぐう……Zzz

師匠T:起きんかっ!!(弟子に飛び蹴り

~クラスとはなんぞや?

師匠T:まずオブジェクトとは何かについてじゃが、簡単に言うなら、プログラムを構成する部品のことじゃ。オブジェクトには、そのオブジェクトの特性を表す数値(フィールド)と、それを操作するインタフェース(メソッド)が備え付けられておる。

弟子D:ふむふむ。

師匠T:Javaに限らず、ほとんどのオブジェクト指向のプログラミング言語では、このオブジェクトを中心にしてプログラミングを考え、これを組み合わせることでプログラムを作り上げていくのじゃ。

弟子D:なるほど……。そして、詳しいことを学びたかったら……。

師匠T:専門のサイトや書籍を読むべし。

弟子D:はい、師匠。それでクラスとは?

師匠T:うむ。クラスとは、そのオブジェクトの設計図のようなものじゃ。そして、このクラスをもとにして作られたものをインスタンスと呼ぶ。

弟子D:ふむふむ。

師匠T:ガンダムの世界に例えてみよう。ザクの設計図がクラス、そしてそれをもとに実際に作られたザクがインスタンスじゃ。

弟子D:なるほど、よくわかるたとえですね。

師匠T:では次はインスタンス化についてじゃ。いくぞ!

~インスタンス化じゃ!

師匠T:では、まずはインスタンス化の方法について、説明するとしようぞ。と言っても、難しいことはない。こう書けばいいだけじゃ。

----------
クラス名 インスタンス名 = new クラス名();
例:Zaku CharsZaku = new Zaku();
----------

師匠T:この例だと、Zakuクラスのインスタンス、CharsZakuを作る、というわけじゃ。

弟子D:なるほど。

師匠T:なお、時と場合によっては、()の中に引数が入ることもある。それについては、後で語るとしようぞ。

~クラスとの値のやり取りについてじゃ!

師匠T:さて。インスタンスと値のやりとりをする方法じゃが、それには、セッター、ゲッターを使う。

弟子D:セッター? ゲッター?

師匠T:セッターとは、インスタンスのフィールドの値を設定するためのメソッド。ゲッターとは、フィールドの値を取得するためのメソッドじゃ。いわば、これはインスタンスの門番のようなものじゃな。
Javaでは、このようにセッターとゲッターを通してやり取りするのが一般的じゃ。

弟子D:なぜ、そのようなことをするのですか?

師匠T:フィールドの値を、異常な値に書き換えられたことを考えてみるがよい。そのせいで異常な動作をするようになっては一大事。じゃが、セッターやゲッター内で、異常な値のやり取りを通さないようにチェックするようにすれば、その心配はなくなるじゃろう。

弟子D:なるほど。

師匠T:このように、フィールドを直接操作できないようにして、セッターやゲッターを通して値のやり取りを行い、フィールドを守ることをカプセル化という。覚えておくがよい。

~コンストラクタじゃ!

師匠T:さて、次はコンストラクタじゃ。これは、クラスがインスタンス化されたときに、最初に実行されるメソッドじゃ。
そのインスタンスの初期状態を設定するのが主な役割じゃな。

弟子D:ふむふむ。それで、コンストラクタはどう書くのでしょうか?

師匠T:うむ。これも難しいことはない。そのクラス名と同じ名前のメソッドを書けばいいだけじゃ。なお、タイプはpublicで書くこと。

----------
public クラス名()
例:public class1()
----------

師匠T:また、引数を必要とする場合は、このかっこの中に書いておくこと。その場合は、インスタンス化のときにも引数を必要とするぞ。

----------
public class class2 {
public class2(int p1) {
……
}
}

class2 ins1 = new class2(5);
----------

師匠T:なお、コンストラクタも他のメソッドと同じく、オーバーライドすることができる。引数を必要としない場合と、引数を必要とする場合の、両方の呼び出し方がある場合は、これを使うこともあるじゃろう。オーバーライドについては覚えておるか?

弟子D:なんでしたっけ?

師匠T:はぁっ!!(弟子に飛び蹴り)さて、今月はここまで。次回も今回の続き。次回は、アクセス修飾子と、文字列について学び、そして試しにクラスを作ってみようと思う。復習を忘れずにな。

※次の更新は、2月8日。『師匠TのチャレンジARSゲーム!』の予定です。お楽しみに!
posted by 裏編 at 10:23| 師匠のJava道場 | 更新情報をチェックする

2018年02月02日

面白ランチャー大特集!

 先日、Vectorのサイトをのんびりと見ていましたら、目を引く記事がありました!
 それはなんと、妹キャラが登場するランチャーソフト! ギャルゲー好きの人や、妹萌えの人にはたまらないランチャーではないでしょうか?
 無骨なイメージがあるランチャーですが、世の中にはこんな変わり者ランチャーがあるものなんですね。
 そこで今月の特集では、こんな面白ランチャーを特集したいと思います。

~いもうとランチャー
 まずは、今話した、その妹キャラが出てくる、その名もずばり、『いもうとランチャー』からです。
 このソフトを起動すると、下のスクリーンショットのように、セーラー服を着た妹キャラと、吹き出しがでてきます。

to1802-01.JPG

 ソフトの起動などは、下の吹き出しに単語を入力するほか、妹を右クリックすると開くメニューからでもすることができます。
 ソフトの登録なども、そのソフトのショートカットのアイコンなどをドラッグ&ドロップするだけと、とても簡単です。
 また、終了させると、妹キャラが寂しそうな顔をしたり、妹キャラのグラフィックも、別バージョンが用意してあったり、自作できたりなど、とても面白い仕掛けもしてあっていい感じです。また、出先でノートパソコンを使っていて、見られるのが恥ずかしい場合には、妹キャラが出てこないシンプルモードにすることができるなど、公共の場で使う場合の配慮もばっちりです。

to1802-02.JPG

 このいもうとランチャーは、Uezo 氏によるもので、こちらからダウンロードすることができます。

~J's Launch
 続いては、スタンダードながらも、ちょっと変わったランチャーです。
 J's Launchは、起動すると、渦巻きの書かれた四角が表示され、ここを右クリックすることで、メニューが開くという、ごく普通のランチャーに見えます、が・・・

to1802-03.JPG

 なんと、この四角の画像を、変えることができるのです! 変える方法は、BMP形式の画像ファイルを、この四角にドラッグ&ドロップするだけと、とても簡単!

to1802-03b.JPG

 このように、デスクトップマスコットのように使えるのが、J's Launchの最大の特徴です。
 色々しゃべったり反応してくれないところが残念ですが、とても使いやすくて面白いランチャーですよ。

 J's Launchはミルキー 氏の開発されたランチャーで、こちらからダウンロードすることができます。

~Tentacle Launcher
 Tentacle Launcherは前二つと違ってグラフィック的な要素は少ないですが、レイアウトに特徴のあるランチャーソフトです。

to1802-04.JPG

 このように、ランチャーを開くと、アイコンがリング状に展開するのです。
 この他にも、仮想デスクトップ機能なるものを備えていたり、マウスジェスチャーに対応していたり、Windowsキーとの組み合わせをホットキーに設定できたりと、使いやすく、高機能なものとなっています。

 この高機能かつ、独特なアイコン配置のTentacle Launcherは、 シーラカンスソフトによって開発されたもので、こちらからダウンロードすることができます。

~最後に
 ここまで、三つのランチャーを紹介してきましたが、どうですか? ランチャーを使えば、PCがさらに使いやすくなることは確実!
 ぜひ、自分にあったランチャーを探して、導入してみてはどうでしょうか?
 そのランチャーが、ここで紹介されたものでしたら、とても嬉しいですね。

※次の更新は、2月5日。師匠のJava道場の予定です。お楽しみに!
posted by 裏編 at 10:09| 特集 | 更新情報をチェックする