CodeCamp(コードキャンプ)のJavaマスターコースレビュー・感想|2日目

この記事を書いた人

プログラミングチャンネル編集部

30社以上のプログラミングスクールを取材してきた編集部が、プログラミングスクール選びのアドバイスをさせて頂きます。

こんにちは。コードキャンプ株式会社が運営するプログラミングスクール「CodeCamp(コードキャンプ)」でプログラミングを学習している高橋です。

高橋吾郎
プログラミング初心者の高橋吾郎です!

現在は全く別の業界で働いていますが、今後はシステムエンジニアとしてのキャリアに進もうと思っています。その準備として、JavaマスターOLコースでJava開発の基礎を学んでいきます!

私が受けているコースは「Javaマスターコース」。Javaは、数あるプログラミング言語の中でも、日本国内において、特に求人案件数が多い言語です。CodeCamp(コードキャンプ)の「Javaマスターコース」では、Javaエンジニアには必須の「オブジェクト指向」から、「JSP/サーブレット」「データベース連携」まで、Javaを用いてWebアプリケーションを開発するために必要な知識を基礎から実践まで学びます。

受講回数は2ヶ月(20回)、4ヶ月(40回)、6ヶ月(60回)の3つから選べます(今回は2ヶ月間受講します)。

それでは、2018年10月24日に受講した、Codecamp(コードキャンプ)「Javaマスターコース」第2回目の学習内容をレビューします

Javaマスターコース2日目|CodeCamp(コードキャンプ)

本日の講師: 松本 早紀 先生

こんにちは!和服がトレードマークの松本です!

日曜大工と料理が趣味の2児の母です。

現在は主にJavaで開発業務を行なっています。

専業主婦の時期が長かったため、業務としてのプログラミング経験は3年と浅いですが、小学校の頃からBASICでプログラミングをし、現在に至るまで、C、Java、PHPなどの言語でさまざまなプログラムを書いてきています。

フリーランスとして、HTML、CSS、javascriptを使ってWebサイトコーディングの仕事などもしています。個人的にiPhoneアプリを開発し、AppleStoreで公開しました。

また、子ども向けプログラミングのボランティア「CoderDojo阿倍野」のチャンピオン(主催)も務めています。CoderDojoでは主にScratchという子ども向け言語を教えています。

10年近い家庭教師経験を活かして、分かりやすい、プログラミングが楽しくなるようなレッスンを心がけます!

よろしくおねがいします。

第2回目のレッスンで学んだことは以下の内容です。

CodeCamp(コードキャンプ)Javaマスターコース第2回目のレッスン内容

  1. 第4章課題(配列の操作)の答え合わせ

  2. 第5章課題(配列の操作)の答え合わせ

  3. 第6章課題(パッケージとAPI)の答え合わせ

  4. 第8章課題(クラスとインスタンス)の答え合わせ

1.第4章課題(配列の操作)の答え合わせ

今回は、受講までにJavaマスターコース第4章の課題である「配列の操作」から第8章の課題「クラスとインスタンス」までを予習しました。

4章課題

高橋吾郎
こんな感じで書いてみましたが、どうでしょうか。

自分の書いたコード

松本 早紀先生
それでは見ていきましょう。

二次元の配列で、Valueの中で一回目のfor文では配列を取り出しています。二回目のfor文ではその配列の中から要素を取り出すという感じで、よくできていますね。

拡張for文を使われているんですね。特に問題なさそうですね。

高橋吾郎
やったー!よかったです!
松本 早紀先生
強いて言えば、型が、5行目で「int[][] scores」って形で宣言しています。

一方で9行目では「int value[]」って形になっているのでどちらかにそろえたほうが統一性がありますね。

高橋吾郎
あ、本当ですね。どっちに付けたほうがいいっていうのはありますか?
松本 早紀先生
 [ ]の位置は好き好きなので、後ろに付けるか型につけるかはお好みでどうぞ!

Javaだけでなく、C言語なんかでもどちらでも動きますが、どちらかに統一したほうがコードとしては読みやすくなります。

高橋吾郎
わかりました!

9行目[]の位置を変えた

松本 早紀先生
これでも綺麗に動くプログラムが書けているのですが、書き方の問題として、11行目とか15行目の「num = num + tmp」というところは「num += tmp」と書くこともできます。

どっちを使っても大丈夫

高橋吾郎
おー、これは短くなって便利ですね。
松本 早紀先生
書き方の問題なので、どちらが良いというものでもなくて、プロでも「num = num + tmp;」のように書く方もいます。どちらか一方の書きかたで揃えることが大切です。

例えば、作文をするときに、語尾に「~である。」とかいてみたり、「です。」「ます。」が混ざっていると汚いじゃないですか。それと一緒でどちらかに揃えようということですね。

高橋吾郎
書き方をそろえることが大切なんですね。

わかりました!

2.第5章課題(配列の操作)の答え合わせ

5章課題文

メソッド1 displayの仕様

メソッド2 changeの仕様

高橋吾郎
この問題はちょっとよく分からなくて……。

課題にはメソッドに戻り値を「なし」とするように書いてあるのですが、うまく返せなくて戻り値を利用して書いてしまいました。

自分で書いたmain メソッドとarraysSortメソッド

自分で書いたdisplayメソッド

松本 早紀先生
はい。

この引数に入っている「array」なんですけど、このアドレスっていうのは共有していますよね。配列っていうのは参照型って言って「この変数はここに入っているんでよろしく!」、っていうイメージで渡されるんですね。この引数に入っている変数をそのままガガガっていじってほったらかしにするイメージです。

その番地の中身が書き換えられてしまっているので、メインメソッドのほうのarrays1っていうのは書き変わった状態のままになっています。

高橋吾郎
なるほど。私は番地にあるものを番地自体を入れ替えてしまっていましたが、この問題は番地にあるものを入れ替える問題だったのですね。
松本 早紀先生
そうですね。番地だけ教えておいて、「あとはよろしくね」って感じで勝手に入れ替えてもらうっていうのが参照型ですね。

今回書いていただいたコードだと新しい変数を作るっていうことでちょっともったいない感じですね。

いまの時代だとあまり問題になりませんが、ひと昔前のメモリのカツカツだったときだと、無駄遣いであまり良くないよといわれてしまう書き方になっています。

高橋吾郎
わかりました!それでは書き換えてみます!

…できました!変数が一つ減ってすっきりしました!

松本 早紀先生
それではいったん動かしてみましょうか。
松本 早紀先生
ちょっと……見にくいかな?(笑)
高橋吾郎
確かに、出力例と違いますね。

出力例

松本 早紀先生
 43行目のprintlnというメソッドは改行してしまいます。

printというメソッドがあるのでこれを使うと改行しないで出力することができます。変えて出力してみましょうか。

数字がごちゃごちゃになってしまいました

松本 早紀先生
どこが数字の切れ目なのかわかりらなくなってしまいました。43行目のprintの中身の後ろに何か付け足してあげましょう。

配列だとよく,(カンマ)を使いますね。「ソート済」っていうのも後ろにくっついています。

「ソート済」を配列の表示が終わったタイミングで出力されるようにしましょう。

修正コードと出力結果

高橋吾郎
いい感じになりました!工夫して見やすくするのも大事なんですね!

3.第6章課題(パッケージとAPI)の答え合わせ

6章課題

高橋吾郎
それでは次の問題をお願いします。

……この問題は解いていてなんだか裏切られた気分になりました(笑)

5章で長々と書いた処理がたったこれだけ!API便利!

松本 早紀先生
そうですね(笑)Arrays.sortっていうのがあるんだ~ってなりますよね(笑)

toStringメソッドっていうのは後々14章あたりで出てくると思うんですけれども、「文字列にする」っていうメソッドで、「配列を文字列にする」ことでカッコで囲んで配列の要素を順番に出すことができます。今までfor文で作ってた一つ一つの要素を出していくっていう処理ですね。ちゃんと綺麗に書けていていいと思います!

4.第8章課題(クラスとインスタンス)の答え合わせ

※7章の課題はスルーしました

課題8

高橋吾郎
このあたりからだんだんと難しくなってきました。クラスとインスタンスの概念が複雑です……。
松本 早紀先生
私はよくクラスは「たい焼きの型」といいます。たい焼きそのものはインスタンスです。クラスそのものは食べられないのですが、実際のたい焼きを食べるためにはたい焼きの型に「new」を使ってインスタンスを作ってあげなくてはいけません。

メソッドやフィールドにアクセスするためには実際にたい焼きを焼いてあげることが必要です!

高橋吾郎
今回はクラス名Cardと「new」でインスタンスcardを作ってからじゃないと裏返したりできないということなんですね!

自分で書いたCard クラス

自分で書いたMain クラス

松本 早紀先生
そういうことです。

今回書いてもらったコードでは5行目でインスタンス化していて、9行目でカードの「reverse」という機能を利用しています。こちらのコードもばっちりですね!

Javaマスターコース2日目の成果と課題|CodeCamp(コードキャンプ)

第2回を受講して学んだことと、次回に向けた課題について整理します。

  • 配列の操作
  • パッケージとAPI
  • クラスとインスタンス

今回は「配列の操作」、「パッケージとAPI」、「クラスとインスタンス」を学びました。

授業では8章の課題を終えることができたので、第3回に向けて、下記の課題に取り組みます。

9章の課題

Javaマスターコース2日目の感想|CodeCamp(コードキャンプ)

5章までfor文を使って頑張って書いてきたコードがJavaが初めから標準で持っているクラスAPI(Application Programing Interface)を利用することで簡単に書けてしまいました。なんだか肩透かしを食らったような気分ですが(笑)、これからガンガン使っていきたいと思います!

また、今回からオブジェクト指向のJavaらしいクラスやインスタンスという概念を学び始めました。だんだん難しくなってきましたが、気合を入れて予習を進めていきたいと思います!

CodeCamp(コードキャンプ)の「Javaマスターコース」とは

CodeCamp(コードキャンプ)の「Javaマスターコース」は、Javaエンジニアになるために必要な知識を基礎から実践まで学べるコースです。

>>無料体験レッスン受講で10,000円OFFクーポンプレゼントキャンペーン実施中

CodeCamp(コードキャンプ)「Javaマスターコース」の料金

2ヶ月
  • 料金:148,000円(税抜)
  • レッスン回数:20回
  • 受講期間:60日間
  • 週の学習時間目安:20〜25時間
4ヶ月
  • 料金:248,000円(税抜)
  • レッスン回数:40回
  • 受講期間:120日間
  • 週の学習時間目安:10〜15時間
6ヶ月
  • 料金:298,000円(税抜)
  • レッスン回数:60回
  • 受講期間:180日間
  • 週の学習時間目安:5〜10時間