見出し画像

プログラム初心者が”DEV.LAB"を受講してどこまで成長できるかの記録 その4【第3章オブジェクト指向②】【ユーザー体験】

DEV.LAB受講生のayakaです:)
今回は前回に引き続いて第3章オブジェクト指向②です。

第3章オブジェクト指向②の内容は以下となっています。

  • コンストラクタ

  • アクセス修飾子

  • パッケージとインポート

  • スーパークラスとサブクラス

  • オーバーライド

  • 抽象クラス vs 具象クラス

  • インターフェイス

授業ポイントノート

パッケージとインポート


package と importの説明について、
package名の前にpackageとついていれば自分のファイルがどこのフォルダに存在しているのかという目印になって、importがつくのそのフォルダの中にあるファイルを使うことができるよーという宣言になる。と説明されていたので、簡単に図にして表してみました。
あと、この説明を聞いてお人形のマトリョーシカを思い出しました^^

プログラミングの順番

アクセス修飾子


メソッド、フィールド、コンストラクタ
のアクセス修飾子の場合、
publicprotectorprivate無し(もしくはパッケージ)
つのパターンがある。それぞれアクセス修飾子の働き方が変わってくる
授業で説明されていた内容を下記のテーブルでまとめてみました。

4つのアクセス修飾子の役割


一見publicは何にでも使えそうな万能な修飾子に見えますが、
全てにpublic を使えばというわけではなく、実はprivateはpublicの
次によく使うアクセス修飾子。
例えば、自分の家のものを勝手に他人に使われるのが嫌なように、プログラミングでも、勝手に使われたくない仕組みの時にprivateを使います。

コンストラクタの継承について


引数ありのスーパークラスのコンストラクタの呼び出し方
super(引数リスト); 
で呼び出すことができる。
※ ただし、サブクラスのコンストラクタの先頭に記述しないといけない
下に例として記述してみました。

引数ありのスーパークラスのコンストラクタの呼び出し方

サブクラスのコンストラクタに"super();"という予約語を書くと
サブクラスが継承したコンストラクタを呼び出すことができる。
こちらもjavaが設けているルールなので覚えていくしかないみたいです。
とりあえずコーディングする練習回数を増やして慣れていくしかないですね!

オーバーライドについて

実際にコーティングをしてみると上書きをしているように見えるけれど、
”再定義” となっており、上書きと再定義を間違えると
内部の処理が大きく変わってくるためので注意が必要!

また、メソッドの前行に@Overrideを付与することで、スーパークラスに同様のメソッドがなければエラーとしてメッセージを出してくれるのでつけた方がいいみたいです!

また、似たような横文字でオーバーロードというのもあるのですが、
オーバーライド
とは全く別の役割を持っているので、
名前は似てますが、注意が必要です!

オーバーロード vs オーバーライド

例としてオーバーライドとオーバーロードのコーディングもしてみました。
コーディングした例をみると2つの違いが明確ですね!

オーバーライド
オーバーロード

抽象クラスとインターフェイスの違い
2つの違いは機能的というよりも思想的なものが強く
抽象クラスはオブジェクトの雛形
インターフェイスはオブジェクトに付随する機能
とイメージするといいと授業で説明されていました!

第3章までの所感


コースを始める前は転職を本気で考えている方達が受けているということもあり、大学院生の私からしたら少し敷居が高く、ある程度社会経験を積んで
プログラミングの知識が多少ないとついていけないのではと不安でした。
ただ、実際にコースを受けてみて、授業ではプログラミングの基礎から始まり、講師の方は身近にあるものを例として説明をしてくださるので、
ただ覚えるというよりも、頭の中でイメージをして、日常生活でも、
「あ、これプログラミングの例として考えられるな」とふとした時に
考えさせてくれるような授業をしてくださってます。
また、私の大学院の内容はプログラミングとはあまり関係はないのですが、
プログラミングするときのコンセプチュアルスキルは非常に研究の効率と質を上げるのに役に立っています。
そのうち、DEV.LABで習ったことを活用または関連付けて研究をしていきたいと思うようになりました。

私が通っているDEV.LAB(ディラボ)とは…
”一生使えるスキルを学ぶ”ことができる 未経験から現場での活躍を目指す
超実践OJT開発型をおこなっているプログラミングスクールです。
Java × Springを現役エンジニアから学ぶことができ充実したサポートもあります。



この記事が気に入ったらサポートをしてみませんか?