こんにちは。コードキャンプ株式会社が運営するプログラミングスクール「CodeCamp(コードキャンプ)」でプログラミングを学習している高橋です。
私が受けているコースは「Javaマスターコース」。Javaは、数あるプログラミング言語の中でも、日本国内において、特に求人案件数が多い言語です。CodeCamp(コードキャンプ)の「Javaマスターコース」では、Javaエンジニアには必須の「オブジェクト指向」から、「JSP/サーブレット」「データベース連携」まで、Javaを用いてWebアプリケーションを開発するために必要な知識を基礎から実践まで学びます。
受講回数は2ヶ月(20回)、4ヶ月(40回)、6ヶ月(60回)の3つから選べます(今回は2ヶ月間受講します)。
それでは、2018年11月5日に受講した、Codecamp(コードキャンプ)「Javaマスターコース」第6回目の学習内容をレビューします。
目次
Javaマスターコース6日目|CodeCamp(コードキャンプ)
本日の講師:勝田郁郎先生
普段はSOHOにてWEB系、ソーシャルゲーム関連の開発を行っております。
実務に基づいた使えるスキルを丁寧に解りやすくお伝えいたします。
現在学んでいる箇所では無い箇所の質問も、是非して下さい。
どんな質問を何度して頂いても構いません。
理解し、使いこなせるようになるまで、お手伝いさせて頂きます。
いっしょに頑張りましょう。
第6回目のレッスンで学んだことは以下の内容です。
CodeCamp(コードキャンプ)Javaマスターコース第6回目のレッスン内容
-
第14章の答え合わせ
-
第15章の答え合わせ
今回は、受講までにJavaマスターコース第14章の課題である「日付とオブジェクト」と15章の課題「例外処理」までを予習しました。
1.第14章の答え合わせ
今回は14章の課題の答え合わせからお願いします。
14章課題本文
- 実行すると最初に現在のリストが表示されます。
- 書籍を繰り返し登録することができるようにします。
- 登録しようとした書籍データで書籍名と著者名が同じものが登録済みの場合は、追加できないものとします。
- また、書籍は最大5冊まで登録できるものとします。空きスペースがなくなったらプログラムを終了します。
出典:CodeCamp(コードキャンプ)「Javaマスターコース」教材
これはJavaではよくあるクラスの構造です。has-aの関係っていうんですけど、本棚は本を所有しているっていう構造を表現したいときに用いるものですね。
確かにコンストラクタを作らないと、デフォルトコンストラクタが自動で作られます。ですが、コンストラクタを作らないといということは「ないといえばない」んですね。
例えば時間をおいて自分の書いたプログラムを見たときもしくは人の書いたプログラムを見るときにコンストラクタを省略してしまうと、省略しているのか、これから作業が必要なのかどうかわからなくなってしまいますね。
「何にもしないコンストラクタをつくってあります!」ってことをほかの人や未来の自分に対して伝えることができます。コメントで「コンストラクタではなにもしない」と書いてあげたりします。
プログラムを書いていて自分が信用できるってことはないので、「これで完成している」ってことを省略しないで書いてあげたほうがきれいなプログラムと言えますね。
次の質問です。今回、本棚に入る本が5冊までなので、コンストラクタ内で5冊まで入るということを定義してしまいました。あまり綺麗ではないかな、と思ったのですが、いかがでしょうか。
自分で書いたコンストラクタ
クラスの最初にfinal宣言して使う
そう考えると、何冊持てるかというのは本棚が決めるべきと思います。なぜかといいますと、例えば変数maxをMainクラス側に持たせておくと、密接な関係にあるMainクラスとしか動くことができなくなってしまいます。
「お前と一緒じゃないと動けない」ってことですね。これはよくない状態とされています。クラス間の結合度は素である、独立している状態のほうがよいとされています。
ん、52行目でwhile文を使っているのは何か理由がありますか?
BookShelfクラスのメソッドzaikoCheck
確かにfor文でも良さそうですが、あまり意識していませんでした。
できればその場合はfor文のほうがベターですね。51行目のや56行目のloop++をfor文では1行で書けるので、キレイに書くことができます。
それに対して、while文は「条件を満たすまで何回でも何百回でもやるぜ!」っていう時に使うイメージです。
このときに「あいうえお」とか入力されたときに先に進みたくありませんね。こういったときにwhile文が使うと。「何億回であろうとお前が数字を入力するまでは先に進ませない」というようなプログラムが書けます。
これからは意識して使ってみたいと思います!
ループ部分をfor文に変えた
一点だけちょっと分かりやすいプログラムにしてみましょう。
52行目のequalsというメソッドについてですが、現在これはStringクラスのメソッドとして使っておられますね。これは実はObjectクラスからオーバーライドされているものなんです。これ、Bookクラスにオーバーライドすることで、カッコの中で名前や著者をStringクラスのものとして足さなくても書くことができます。
bookクラスにequalsメソッドを加えた
52行目がすっきりしました!
繰り返し行う場合には便利に使えそうです。オーバーライドも意識して使っていこうと思います!
自分で書いたBookShelfクラス内displayメソッド
このtoString()というメソッドはObjectクラスのメソッドなので、Bookクラスでもオーバーライドすることができます。ちょっとやってみましょう。
BookクラスにtoString()メソッドを追加
そうすると、System.out.println()の中にbookクラスを入れた場合に、この形式で表示されるようになります!
書き換えたdisplayメソッド
次の課題を見てみましょうか。
2.第15章の答え合わせ
15章課題
自分の書いたプログラム
ただ、複数クラスに関係するプログラムだと、呼び出し元でエラーを処理したいケースが考えられます。実際に例外を作るときは名前だけって作るのでも大丈夫ですね。こんな感じです。
例外クラス:UnderNumberException
こうしておくことでUnderNumberExceptonをthrowすることができるようになります。
書き換えたプログラム
例外の定義はできましたね。次に質問なのですが、finallyの意味はなんなんでしょう。無いと何か問題があるのでしょうか。
書かなくてもいいのですが、ここまででひとくくりだよ、っていうことが分かりやすくなるのでプログラムとしてはきれいに見えますね。
きれいなコーディングを心がけていきたいと思います!
Javaマスターコース6日目の成果と課題|CodeCamp(コードキャンプ)
第6回を受講して学んだことと、次回に向けた課題について整理します。
- 日付とObjectクラス
- 例外処理
今回は「日付とObjectクラス」、「例外処理」を学びました。
授業では15章の課題を終えることができたので、第7回に向けて、下記の課題に取り組みます。
Java基礎OL最終課題 「Big or Small」ゲーム作成(抜粋)
Javaマスターコース6日目の感想|CodeCamp(コードキャンプ)
結構なハイペースで進めているので、教科書の内容に取りこぼしが少しあったりしていますが、課題を解くたびに先生にチェックしていただけるので、安心してスピードを出すことができています(笑)
次はいよいよ基礎編の最終課題を添削していただきます。モノを作るということで大変な挑戦になりそうですが、くじけぬよう頑張ります!
CodeCamp(コードキャンプ)の「Javaマスターコース」とは
CodeCamp(コードキャンプ)の「Javaマスターコース」は、Javaエンジニアになるために必要な知識を基礎から実践まで学べるコースです。
>>無料体験レッスン受講で10,000円OFFクーポンプレゼントキャンペーン実施中
CodeCamp(コードキャンプ)「Javaマスターコース」の料金
2ヶ月 |
|
4ヶ月 |
|
6ヶ月 |
|
現在は全く別の業界で働いていますが、今後はシステムエンジニアとしてのキャリアに進もうと思っています。その準備として、JavaマスターOLコースでJava開発の基礎を学んでいきます!