勉強中 Javaでオブジェクト指向プログラミング Vol.1
学校ではJavaしか使わないのに自分はJavaを毛嫌いして他の言語ばっかり触ってるので、Javaに関してかなりの素人なのと、オブジェクト指向を学べる言語を触ってなかったのでプログラミングの授業がよく分からない。 前年度から真面目にやってりゃよかったものを一から再勉強するという目的の記事にしたいです。
参考書は大分前に買って読んでなかったやつです。
オブジェクト指向の輪郭雑触り
[理想的な開発]
- 追加や変更に強い
- 少ない開発期間
構造化プログラミングでは上記の点で限界が来て、なんかもっと別のやつ(ふわふわ)が求められたらしく、オブジェクト指向という手法・考え方が生まれた。
オブジェクトとは
インスタンスとオブジェクトは同義だとか、クラスもインスタンスもオブジェクトだよだとか、そもそもオブジェクトという言葉の定義が曖昧だよとか、人によるとか。 調べると泥沼にハマるし、参考書は例え話ばかりでモヤモヤが解決しないので、一番納得した資料の説明を自分なりに言い換えて書く。
そもそもオブジェクトにはいくつか種類があり、Javaでは次の2つがあるらしい。
- クラスオブジェクト
- インスタンスオブジェクト
これらを単に「オブジェクト」と呼ぶらしい。 これが「クラスもインスタンスもオブジェクトだよ」という話であり、「インスタンスとオブジェクトは同義」という話でもある。
クラス(設計図)もオブジェクト、インスタンス(設計図を元に実際に作ったもの)もオブジェクト。
クラスオブジェクトは、実行空間上にインスタンスオブジェクトを生成するためのオブジェクト。 インスタンスのように生成する必要はない。
インスタンスオブジェクトは、実行空間上にnewして生み出されたオブジェクト。 単に「オブジェクト」と呼ばれたり「インスタンス」と呼ばれたりする(この一文を読むときは今までの文章で紛らわしい禍根は断っておくこと)。
自分はこういう捉え方で大体納得した。
今回はこんな感じで。 次はクラスを書く。