現役大学生のプログラマー日記 #2

こんにちは。アルバイトのイシイです。
女子大生のプログラミング格闘記、第二話です。
前話でJavaを仲間にし、プログラマー(仮)レベルがLv.2になったイシイですが、更なるレベルアップを目指します。

オブジェクト指向


Javaを学ぶ過程で、オブジェクト指向というものがでてきました。どうやらJavaだけでなくプログラミング全体において大事な概念らしいですね。そのオブジェクト指向を理解するにあたって、「名前付けして役割分担すること」の大切さを学びました。

プログラムを書くとき、たくさんのクラスやメソッドに分けて書いていきますよね。私はWeb上のプログラミング言語学習サービスで学習していたので、レッスンの指示通りにクラスやメソッドをつくっていたわけですが、いくつものクラスに分ける意味が分からず、内心「一つのクラスに全部書いちゃってもいいんじゃないの?」と思っていました。私がサッカーを観始めた頃の「全員FWでいいんじゃないの?」という疑問と同じです。サッカーにハマったのは12歳のときですが、サッカーはボールをゴールに入れることが目的であるのに、わざわざFW,MF,DFというように名前と役割を分ける意味が解りませんでした。全員FWとしても差し障りないのでは、と。

しかしみんながボールを追ってしまうとごちゃごちゃになり、自陣のゴールから相手側のゴールまで縦横無尽に走り回っていては体力の消費が著しく、またボールに群がっていてはパスを出した先に味方が誰もいない、なんてことにもなってしまいます。結局勝つためにはスペースに走りこんでパスをもらう人、相手に攻め込まれたときにゴールを守る人が必要になってきます。

スペースを上手く使い、体力を効率よく消費するために、攻める人、守る人、ボールを運ぶ人、シュートする人など役割を分け、フォーメーションをあらかじめ決めておくことでそれぞれの選手に求められる役割が具体的になり、それをFW,MF,DF,GKと名前を付けて役割分担することでチームがスムーズに機能するようになります。

野球でいうとファースト、セカンド、ライト、センターなどにあたりますね。当時中学生の私はMFやDFも大切であると学んだわけですが、どうやらプログラムもこれと同じなのでは、と現在大学生の私は思ったわけです。

全部を一つのクラスに縦横無尽に書いていてはごちゃごちゃになってしまいますから、どれが何の働きをしているのかわかりづらく、直すときも大変です。サッカーや野球のように役割ごとに名前を付けて分けることは全体のプログラムを効率よくスムーズに進める上で大事だということですね。

こうしてたくさんのクラスを役割ごとに作ることを覚えた私は、クラスという設計図を基にインスタンスをつくることもできるようになりました。Personクラスを基に勇者も魔法使いも何人でも生成できるようになったわけです。オブジェクト指向という武器を手に入れ、Lv.3にレベルアップです。(続く)

現役大学生のプログラマー日記 #1(Java)
現役大学生のプログラマー日記 #3(HTML, CSS, SQL)

関連記事

  1. 2018年上半期 読まれたブログ記事 Top 10!(の後編)

  2. 2018年上半期 読まれたブログ記事 Top 10!(の前編)

  3. 参加率90%以上!エンジニアが飲み会に参加する理由

  4. 新入社員歓迎会を開催しました!

  5. 2019年に向けて

  6. 新年明けましておめでとうございます