早いものでもう5日目です。1週間が過ぎました。
頑張ったおかげかjavaにも大分慣れたような気がします。
もうjavaとはお友達です。ずっと友達と書いてズッ友です。
関係ないんですけど、WordPressではShift + Enterで普通の改行もできたんですねこれ。
知らなかった。
前回前々回ともアホみたいに行間空いてアイエエエエ!?行間、空くのナンデ!?ってなってました。
普通にEnter押すとこんぐらい段落空いちゃいます。
というところで本日も復習から入ります。
・class
クラスと読みます。
イメージとしては設計書、もしくは金型に近いですね。
class Human{ String 名前; String 性別; int 身長; void 歩く(){ 歩く処理; } void 走る(){ 歩く処理; } }
という風に定義します。
クラスでの変数定義はフィールドといいます。
クラスは何かを量産するときに使えます。
上の例でいうと、Humanという金型があるので人間をたくさん作ることができます。
ちなみに、これは金型なので実体がありません。動きません。
なので金型になんか固まる液体を流し込まないといけません。
Human kyaida = new Human();
javaではこんな風に作れます。kyaidaというのは作られた人間の呼び名です。変数と同じです。
クラスをもとにオブジェクトを作ることをインスタンス化といい、
クラスから作られたオブジェクトをインスタンスといいます。
こんな感じでした、classは。
・オブジェクト指向
よく聞くオブジェクト指向とやらです。
インスタンス化されたものを、一つのオブジェクトとして捉えて動かす考えがオブジェクト指向です。多分。
銀行のシステムに例えると、
受付がいて、受付が印刷を他の人に頼み、注文者の口座を書き換えて、受付に戻り、お金を渡す、という流れになります。
これを 受付クラス 印刷クラス 口座クラスなどのように部品化してシステムとして組み込むのがオブジェクト指向です。と、本に書いてありました。
考え方のお話ですので、さらっと流しても、ま、多少はね?
ということで次に移ります。
・カプセル化
これは変数にアクセスを制限したり、逆にオープンにしたりするかの設定です。
class Tanaka { private String name; public int age; }
こうすると田中さんの名前は非公開になり、年齢だけオープンということになります。
田中さん自身でしか名前を変更することも、見ることも叶いません。
privateとつけると、そのクラスでしか変数を変更できなくなります。
publicとつけると、そのクラス以外からでもアクセスできてしまいます。
という違いがあります。
しかし、便利なようで値を参照したり変えたりするのがめんどくさいこのprivate。
しっかりと参照も変更もできる方法があります。ここから複雑になっていきますよ。
getterとsetterというんですけど、
class Tanaka { private String name; public int age; public String getName(){ return this.name ; } public void setName(String newName){ this.name = newName; } }
getNameメソッドとsetNameメソッドを作ってあげると、どこからでも
田中君の名前を見れるし、値を変更できるようになります。
あくまで田中君のメソッドを使用して、値を見る、という感じですね。
これを使えば、田中君のnameが仕様変更で名前を変えられても田中君のフィールドを
変更するだけで済みます。やったぜ。
少し長くなったので、今回はこれまでにします。
次回は継承や多態性の復習をしたいと思います。