こんにちは~
では前回宣言していました、オブジェクト指向の3大機能見ていきましょう~
今回はカプセル化と継承について見ていきましょう。
まずはカプセル化です。
カプセル化は修飾子でアクセス制御をするという機能です。
大事な情報が簡単に変更されたら困りますよね。
安心してください。
そんな時にカプセル化の機能を使ってアクセスを制御するんです。
一番強固なprivate修飾子を付ければ、
他クラスからの直接のアクセスは不可になります。
でも、大事な情報も変更が必要な時があるかと思います。
そんなときにアクセスできず変更できないとなっても困りますよね。
安心してください。
getter、setterメソッドというものを使えば後からでも変更は可能になります。
public class SamePackageClass { // フィールド private int num = 3; // getter public int getNum() { return this.num; } public void setNum(int num){ this.num = num; } }
publicなメソッドから同じクラス内のprivateフィールドにアクセスすることで
値の取得と代入ができます。
このようにアクセス制御をして情報の機密性を守る機能がカプセル化というものです。
継承はその言葉通りの意味です。
他のクラスからフィールドやメソッドなどのクラスの情報を継承することです。
どういうときに使うのが良いのか。
似たような情報を持つクラスをたくさん作るときによく使います。
大本のクラスのことを親クラスといい、それを継承するクラスを子クラスといいます。
分かり易い例で例えると、
RPGで魔法使いも戦士もHPと攻撃力、攻撃をするという行動などを持っているかと思います。
そうしたときにHP、攻撃力というフィールド、
攻撃を行うというメソッドをもっている金型を作り継承させることで、
それぞれの子クラスでそれらを宣言する必要がなくなるんですね。
つまり、
①何度も同じコードを書かなくて済むため生産効率があがる。
②読みやすいプログラムにすることでバグが忍び込む可能性を抑える。
といったメリットが継承の機能にはあります。
今回はオブジェクト指向の3大機能のうちのカプセル化と継承を見てきました。
次回は残る一つの多態性について書いていこうと思います。
寒い日が続くようになってきたので体調には気を付けてくださいね。
ではまた次回のブログで会いましょう。