こんにちは。コードキャンプ株式会社が運営するプログラミングスクール「CodeCamp(コードキャンプ)」でプログラミングを学習している高橋です。
私が受けているコースは「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回目のレッスン内容
-
第8章「クラスとインスタンス」の解説
1.第8章「クラスとインスタンス」の解説
今回は第8章「クラスとインスタンス」の解説をお願いできますでしょうか。今回のタイトルにもあるクラスとインスタンスとはどういったものなんですか?
例えば、こんな操作を持っていますよ、こんなメンバ(属性)をもっていますよというような形を定義するものなんです。定義しただけではプログラムとして動きません。なので、使えるようにしなければなりません。これがインスタンス化というものです。
クラスとして定義しているのはデータ型を作っているということです。
教科書では版画の型(クラス)と絵(インスタンス)に例えられている
これまで 「int num =10;」と書いたとき、numという変数のなかに数値が代入されていました。一方、「Person person = new Person();」と書いたとしますね。
このとき、実は3つのメモリの領域を使っています。personという変数の中にはこのインスタンスがどこにあるかっていう番地が入ります。ここはスタック領域とよばれます。
その番地を示すにはインスタンスのデータがありますね。ここはヒープ領域と呼ばれます。
最後に、インスタンス化する際にヒープ領域がどれくらい必要なのかわからないとこまりますね。必要な容量を確保するための設計図を管理する領域があります。ここが左の部分で、クラス領域と呼びます。
メモリの中のイメージ
例えば、車についてのプログラムを書いていたとしましょう。その際に運転手のためにPersonのクラスを作ったとします。このクラスを作っておくと、例えば学校についてのプログラムにも応用できますよね。先生とか生徒とかですね。別の形で再利用できるのがオブジェクト指向でポイントになってきますね。
この辺は設計面も入ってくるので若干難しいところですね。
これでクラスとインスタンスのイメージがなんとなくつかめました!ありがとうございました!これで進めそうです!
Javaマスターコース4日目|CodeCamp(コードキャンプ)
本日の講師: 石川 博子先生
こんにちは。私は、エンジニア歴25年ほどある石川と申します。
大手ゲーム会社でエンジニアのキャリアをスタートし、フリーランスを経て、ベンチャー企業を立ち上げています。制御系のシステムからWeb系のシステムまで幅広い開発経験があり、プロジェクトマネージメントなどの経験も豊富です。
開発業務のほかに、最近は、新人研修の技術研修や初心者向けのシステム設計研修など、担当しております。休日はアウトドアでジョギングなど、体を動かしていることが好きです。よろしくお願いいたします。
第4回目のレッスンで学んだことは以下の内容です。
CodeCamp(コードキャンプ)Javaマスターコース第4回目のレッスン内容
-
第9章課題(コンストラクタと静的メンバ)の答え合わせ
-
第10章課題(カプセル化)の答え合わせ
- 第11章課題(継承)の答え合わせ
1.第9章課題(コンストラクタと静的メンバ)の答え合わせ
今回は、受講までにJavaマスターコース第9章の課題である「コンストラクタと静的メンバ」を予習しました。
9章課題
今回書いたカードクラス
今回書いたメインクラス
2.第10章課題(カプセル化)の答え合わせ
第10章の課題1
問題のMainクラス。これらを改修する。
問題のChipsクラス
自分で書いたChipsクラス
セッター名前をsetChipからsetNumへ変更
もし、そうしたい場合には、現在11行目のif条件で「0<= num」となっていますが、変数名は左に書くのが一般的です。
変数と0の位置を入れ替えた
実行してみましょうか。
自分で書いたmainメソッド
ぽちっ!
実行結果
今回はチップの数がマイナスにならないように書いていただきましたが、仕様書にないことを書いてしまうとダメなケースもありますので、気を付けましょう。
また、setterとgetterは次のようにして、右クリックでまとめて生成することができますよ。
右クリックからソース>getter および setterの生成を選択
使用する変数を選択
一気にgetterとsetterが生成される
どんどん利用してコードを書く時間を短縮していきたいと思います!
3.第11章課題(継承)の答え合わせ
11章の課題
Productに製品名を書き、それを継承するFoodに賞味期限があると考えてFoodのクラスに書くことにしましょう。
Productクラスには賞味期限がないため、6行目は代わりFoodクラスで宣言する。
おっと、継承がうまくいっていないようで、Foodクラスでエラーがでてしまいました。
this.name = name;でエラーが出る
こんな時には上位クラスのコンストラクタを使いましょう。
6,7行目をsuper(name,price);と書き換えた
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ヶ月 |
|
4ヶ月 |
|
6ヶ月 |
|
現在は全く別の業界で働いていますが、今後はシステムエンジニアとしてのキャリアに進もうと思っています。その準備として、JavaマスターOLコースでJava開発の基礎を学んでいきます!