技術コラムエンジニア技術開発

オブジェクト指向をざっくり説明

こんにちは!スリープラスの南です。

なりたい職業にプログラマーがランクインする現在、在学中から目指す人や、思い切って業種を変える人、色々な方がエンジニアを目指し、日々学んでいるかと思います。

一言に学ぶといってもそのボリュームは計り知れず、新卒でこの業界に入った私も何から勉強すればいいのか、そもそも勉強しても意味が分からないわで四苦八苦しておりました。

そこで今回、エンジニアになりたいなーと思い始めた方に向けて、まず多くの人がぶち当たる壁「オブジェクト指向」
このオブジェクト指向について簡単に説明したいと思います。(Javaをベースとします)
また、エンジニアになって大変だったり、苦労したこと等も載せていますので、これからの参考にしていただければと思います。

オブジェクト指向

プログラミングの勉強を始めると必ず目にする「オブジェクト指向」
色々な教材や記事で説明されていますが、これからプログラムを学ぼうという方にとっては、大きな壁の一つだと思います。
私も最初は意味が分かりませんでした。

簡単に説明すると
オブジェクトとは「物」です。
そして物は「振舞い」を持ちます。
この「物」と「振舞い」の関係性をベースにした考え方をオブジェクト指向といいます。

人は服を着ますし、動き回りますし、意思疎通します。これを振舞いとします。
では例として、服を着るとはオブジェクト指向でいうとどういうことなのでしょうか?


オブジェクトは「人」と「服」

オブジェクト指向では「人」も「服」も同じオブジェクトです。

着るとは振舞い

人が「身に着ける」という振舞いを行うことで、「人」が「服」を「着る」ことができます。
この「身に着ける」という振舞いを「メソッド」と呼びます。

「人」が身に着けることができる物は「属性」

「人」が身につけれるもの(今回は服)を属性といいます。
「人」が「ジャケット」を「身に着ける」という振舞いを行うことで、「ジャケット」を自分のもつ「服」属性にセット(身に着ける)しています。

じゃあ何も身に着けてなかったら?

「人」が「服」を身に着けなかった場合、そこには生まれたままの姿で佇む人がいるだけです。
この時、「人」がもつ「服」は「Null」という状態にあります。

Nullてなに?

そのままの意味です。
「そこに何もない」ということです。

よく聞く「ぬるぽ」とは

「人」が「服」を着てない状態で、「服を脱ぐ」という振舞いを行ったとしましょう。
着てないのに脱げませんよね?プログラこの状態に陥るとNullPointerExceptionというエラー(Exception)が発生します。
簡潔に言うと、脱ぐもんないよと怒られているわけです。

じゃそもそも「人」や「服」っていうオブジェクトはどこから来てるのか?

物の定義を行うクラス

「人」「服」それぞれがクラスで定義されています。
「人」が持つ属性、振舞いを定義したものが「人」クラスです。
同じく、服としての属性や振舞いを定義したものが「服」クラスです。

実際の物

「人」や「服」の定義がされているクラス。
このクラスからインスタンス化(よく聞くnew)する事で、実際の物が生まれます。


この定義を作成していくのが、主なプログラマーの仕事となります。

ほかにもインターフェースや抽象化、フレームワークなど、様々な技術、手法が用いられてシステムは構築されます。
データベースの知識も必要ですし、画面を構築するならhtmlやcssの知識も必要になってきます。
先ほどの例ではクラスしか出てきませんでしたが、「人」や「服」って、実際何なのか?を考えてみると、別の形が見えてくるかもしれませんね。

今回はオブジェクト指向における初歩中の初歩を説明しました。
プログラミングを学ぶ上で一番重要なことは、自分で実際に作る事です。
「オブジェクト指向」がよくわからなかった方、今回は「人」と「服」で簡単に説明しましたが、自分のイメージしやすいもので考えてみると一つ理解が深まるかもしれません。

大変だったこと、苦労したことって?

よく聞く話かもしれませんが、家に帰れない、終電でかえる。
正直昔は業界としてよくありましたが、今はそんなこと稀です。

なにもわかっていない状態から、色々なことを学ぶ、これが一番大変で苦労して、でも楽しかったことだと思います。
どの仕事でもいえることかもしれませんが、学び続けることは必須だと思います。
ここまで勉強しておけば後は大丈夫なんてことはありません。

特に、新しい物となると海外サイトしかヒットしないなんてことはざらにあります。
めげずに少しずつでも理解していく、これは慣れてないとかなり大変かもしれません。
今は翻訳ツールなど色々ありますので、頑張ってみましょう。

さいごに

オブジェクト指向だけで言っても、勉強することはいっぱいありますし、他にも学ぶことはいっぱいあると思います。
でも、そこで努力できれば、ITエンジニアの楽しさがどんどん見えてくると思います。
そして興味をもつ分野も見えてくると思います。
この記事を読んで、少しでも興味を持っていただけたら幸いです。

タイトルとURLをコピーしました