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

この記事を書いた人

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

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

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

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

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

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

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

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

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

CodeCampのJavaマスターコースでは、webのしくみやJSP/サーブレット、データベース連携など、Javaを用いたwebアプリケーションの開発スキルを基礎から実践まで学びます。

これまでのプログラミングの基本的な部分については、サクサクと進めることができました。しかし、実際にクラスやインスタンスといった概念がでてくると、だんだん話が入り組んできて理解が難しくなってきました。

そこで、第8章の課題の答え合わせをする前に、教科書の内容を中心に解説してもらうことにしました!

本日の講師は顔出しNGでした。

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

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

  1. 第8章「クラスとインスタンス」の解説

1.第8章「クラスとインスタンス」の解説

高橋吾郎
今日はよろしくお願いします!

今回は第8章「クラスとインスタンス」の解説をお願いできますでしょうか。今回のタイトルにもあるクラスとインスタンスとはどういったものなんですか?

先生
クラスは枠組みです。

例えば、こんな操作を持っていますよ、こんなメンバ(属性)をもっていますよというような形を定義するものなんです。定義しただけではプログラムとして動きません。なので、使えるようにしなければなりません。これがインスタンス化というものです。

クラスとして定義しているのはデータ型を作っているということです。

教科書では版画の型(クラス)と絵(インスタンス)に例えられている

先生
インスタンス化するときにメモリの中で何が起こっているのかというお話をしましょう。

これまで 「int num =10;」と書いたとき、numという変数のなかに数値が代入されていました。一方、「Person person = new Person();」と書いたとしますね。

このとき、実は3つのメモリの領域を使っています。personという変数の中にはこのインスタンスがどこにあるかっていう番地が入ります。ここはスタック領域とよばれます。

その番地を示すにはインスタンスのデータがありますね。ここはヒープ領域と呼ばれます。

最後に、インスタンス化する際にヒープ領域がどれくらい必要なのかわからないとこまりますね。必要な容量を確保するための設計図を管理する領域があります。ここが左の部分で、クラス領域と呼びます。

メモリの中のイメージ

高橋吾郎
こういうクラスの何が便利なのでしょうか。
先生
こういうクラスを作るとほかの部分にも利活用できるんです。

例えば、車についてのプログラムを書いていたとしましょう。その際に運転手のためにPersonのクラスを作ったとします。このクラスを作っておくと、例えば学校についてのプログラムにも応用できますよね。先生とか生徒とかですね。別の形で再利用できるのがオブジェクト指向でポイントになってきますね。

この辺は設計面も入ってくるので若干難しいところですね。

高橋吾郎
なるほど!

これでクラスとインスタンスのイメージがなんとなくつかめました!ありがとうございました!これで進めそうです!

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

本日の講師: 石川 博子先生

こんにちは。私は、エンジニア歴25年ほどある石川と申します。

大手ゲーム会社でエンジニアのキャリアをスタートし、フリーランスを経て、ベンチャー企業を立ち上げています。制御系のシステムからWeb系のシステムまで幅広い開発経験があり、プロジェクトマネージメントなどの経験も豊富です。

開発業務のほかに、最近は、新人研修の技術研修や初心者向けのシステム設計研修など、担当しております。休日はアウトドアでジョギングなど、体を動かしていることが好きです。よろしくお願いいたします。

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

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

  1. 第9章課題(コンストラクタと静的メンバ)の答え合わせ

  2. 第10章課題(カプセル化)の答え合わせ

  3. 第11章課題(継承)の答え合わせ

1.第9章課題(コンストラクタと静的メンバ)の答え合わせ

今回は、受講までにJavaマスターコース第9章の課題である「コンストラクタと静的メンバ」を予習しました。

9章課題

 

石川博子先生
本日はよろしくお願いします。今回は9章のカードクラスからですね。
高橋吾郎
こんな感じで書いてみましたが、どうでしょうか。

今回書いたカードクラス

今回書いたメインクラス

石川博子先生
はい、大丈夫そうです。ちょっと実行してみましょうか。

石川博子先生
はい。ちゃんとできていますね。
高橋吾郎
これはしっかりできました!次の10章の課題もおねがいします!

2.第10章課題(カプセル化)の答え合わせ

第10章の課題1

問題のMainクラス。これらを改修する。

問題のChipsクラス

石川博子先生
はい、それではChipsクラスから見ていきましょう。

自分で書いたChipsクラス

石川博子先生
getter,setter の作成をする際には、一般的に「getフィールドの名前」とします。今回はフィールドnumのsetterはsetNumとしましょう。
高橋吾郎
フィールドメンバやクラス名といったものが色々出てくるので混乱して命名してしまいました……。セットするフィールドメンバ名を使って作るのですね!

セッター名前をsetChipからsetNumへ変更

石川博子先生
次に、11行目からのif文の中で0以下を0にする、という処理は問題文にはありません。これは何でしょう?
高橋吾郎
あ、これはチップの数はマイナスにはならないだろうということで追加してしまいました(笑)
石川博子先生
気を遣って書いていただいたのですね(笑)

もし、そうしたい場合には、現在11行目のif条件で「0<= num」となっていますが、変数名は左に書くのが一般的です。

変数と0の位置を入れ替えた

石川博子先生
それでは次にmainメソッドを見てみましょう…うん、大丈夫そうですね。

実行してみましょうか。

自分で書いたmainメソッド

高橋吾郎
はい!それじゃあ実行ボタンを押しますね。

ぽちっ!

実行結果

石川博子先生
ちゃんと出ていますね。

今回はチップの数がマイナスにならないように書いていただきましたが、仕様書にないことを書いてしまうとダメなケースもありますので、気を付けましょう。

また、setterとgetterは次のようにして、右クリックでまとめて生成することができますよ。

右クリックからソース>getter および setterの生成を選択

使用する変数を選択

一気にgetterとsetterが生成される

高橋吾郎
お~、これは便利ですね!

どんどん利用してコードを書く時間を短縮していきたいと思います!

3.第11章課題(継承)の答え合わせ

11章の課題

石川博子先生
あら、Productに賞味期限がありますね。

Productに製品名を書き、それを継承するFoodに賞味期限があると考えてFoodのクラスに書くことにしましょう。

Productクラスには賞味期限がないため、6行目は代わりFoodクラスで宣言する。

高橋吾郎
確かにそうですね(笑)

おっと、継承がうまくいっていないようで、Foodクラスでエラーがでてしまいました。

this.name = name;でエラーが出る

石川博子先生
6行目のように書くと、Productクラスでprivate宣言されているnameにはアクセスできません。

こんな時には上位クラスのコンストラクタを使いましょう。

6,7行目をsuper(name,price);と書き換えた

石川博子先生
super()を利用して上位クラス、Productクラスのコンストラクタを起動することでnameやpriceといったProductのフィールドにアクセスできるようになりました。

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

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

  • コンストラクタと静的メンバ
  • カプセル化
  • 継承

今回は「コンストラクタと静的メンバ」、「カプセル化」、「継承」を学びました。授業では11章までの課題を終えることができたので、第4回に向けて、下記の課題に取り組みます。

12章の課題

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

3日目では一旦立ち止まって、なかなか理解の追いつかないところについて、根気強く丁寧に解説していただきました。おかげで、Javaの複雑な部分について理解を深めることができたかなと感じています。

4日目では、カプセル化や継承の学習の中で実際にインスタンスを動かしてみて、実際のものを操作しているような感覚でした。できることが増えるにつれて実際に何か開発してみたい気持ちが強くなってきました。

実際にどんなものを作るかはまだ決めていませんが、今後の学習の中で考えていければと思っています!

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時間