【Webエンジニア】たのしいオブジェクト指向入門
みなさんこんにちは!
「楽しく×気軽×本格的」
なエンジニアメンターのスクータムです。
さて、今回はオブジェクト指向についてまとめようと思います。
「知ってる知ってる、継承とかカプセル化とかのやつでしょ?」
ええ、それです。
今回は初心者の方にも、あんまりよくわかってないかも?
という方にもみてもらえるように、なるべくわかりやすくまとめてみようと思います。
定義
いきなり定義か!?
となるのですが、まあ、慌てず。
私の手元にあるソフトウェア工学の教科書には、
「クラスやオブジェクトをモジュール化の単位とする設計手法」
とあります。
そう、冒頭では継承とかカプセル化とか言っていて、
まるで機能のような書き振りですが、実際は設計手法なのです。
機能ではなく、考え方なのです。
そう、ですので、オブジェクト思考での開発を行うことは、
・オブジェクト指向にそった言語を利用すること
でもないし、
・継承やカプセル化などを使うこと(部分的にはそうですが)
というわけでもないのです。
繰り返しますが、設計手法なのです。
咀嚼して解釈してみる
しかしまあ、
「クラスやオブジェクトをモジュール化」
っていったい何だよ?
って話です。
そこで、私なりに大胆に敷衍してみます。
オブジェクト指向は、
「興味のあるものをクラスにして、組み合わせていく考え」
だと思っています。
…これでもちょっとわかりづらいですよね。
ということで、テキトーな具体例を出します。
くどいようですが、単なる設計手法なのです。
最初のうちは、
「ああ、とりあえず色々クラスにまとめりゃいいのね」
くらいでいいと思います。
具体例
しょうもない例からいきましょう。
「犬に吠えられるとびっくりする人間」
は、コードで書くとどうなるでしょう?
※私はJava結構使うので、Javaで書いてます。
Dog dog = new Dog();
Person person = new Person();
dog.bark(person);
そして、上記のオブジェクトたちはこんな感じの定義をしているわけです。
Person.java
class Person {
private name;
public void walk() {
System.out.println("歩いています");
}
public void suprise() {
System.out.println("わあ、びっくりした");
}
}
Dog.java
class Dog {
private name;
public void bark(Person person) {
System.out.println("わんわん");
person.surprise();
}
}
こんな感じです。
「なんだ本当にしょうもないな…」
って感じでしょうか?
実際にどう仕事に役立つんだ!!
と思われるでしょうが….
例が小さなものなので、実感が出づらいかもしれません。
需要がありそうなら、
「業務上でのオブジェクト指向設計」
も書いてみようと思います。
例えば、データベースにアクセスする、加工する…を、
一つのファイルに書いていたら何が起こるでしょうか?
メンターを受けています
・ポートフォリオ構築が大変…
・開発の学習が行き詰まってる…
・キャリアの相談先がいない…
こんなお悩みを持っている方はいませんか?
現役のエンジニアがメンタリングいたします!
・先着4名
・2023/12/31まで無料
でございます!
ご検討ください!
お問い合わせは、
・こちらのNote
・公式HP
https://tecedu.hp.peraichi.com/
まで!
サポートいただけますと幸いです。さらなる励みにして精進します。