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