Javaって何?
Javaはプログラミング言語の1つです。また、Javaでやれることはかなり多く、
- Webサービス開発
- Webアプリ開発
- デスクトップアプリ開発
- Androidアプリ開発
- 基幹システム開発
- 組み込みシステム開発
- IoT開発
などのプログラムをつくることが可能です。また、多くのエンジニアの方が使用していまして、調べるリソースはネット上に多くあります。ただ、Javaはよく初心者には理解するのが少し難しい言語だと言われています。その理由はJavaが「オブジェクト指向」型の言語&「オブジェクト指向」は初心者には理解がむずかしいと言われているからです。
逆にJavaScriptやphp、Rubyなどは、初心者でも比較的理解できる言語といわれているので、プログラミングを試しに勉強したいかたには、開発環境構築の簡単さも考慮してJavaScriptが最適かなと、駆け出しプログラマーの僕は思います。
ただ、実際にプログラマーとして働きたいとおもっている人にとって、「オブジェクト指向」の理解は必須です。これを理解しないとおそらくチーム開発はできません。ただ、誰しもが理解することができると思います。あるエンジニア系youtuberの方がいってたのですが、その方が駆け出しプログラマーだったころは、全然うまくいかなくて自分はプログラマーにむいていないんじゃないんのか、と悩んで毎日泣いてたとおっしゃってました、ただ、その人いわく「今振り返ればただただ勉強時間が足りなかっただけ」、とおっっしゃっていました。
また、このblogでは、駆け出しプログラマーとして、オブジェクト指向をわかりやすく説明もしたいとおもっています。
オブジェクト指向(現在知っていることver.1)
※注意 versionが上がるごとに知識の精度があがっていくと思われます。低いversionの記事はあとから見返したときにちょっと違うな、となる場合があります。
オブジェクト指向はおそらく、チーム開発においてコードの独立性を保つため、セキュリティのために大切なんだと思います。また、4つの柱となる概念が存在するようです。
- カプセル・・・クラス(設計図)のなかにあるプロパティやメソッドにprivateをつけることで実現? セキュリティや不本意にコードが変更される心配を取り除く。
- 継承・・・もとのクラスよりextendsで継承できる、無駄に同じようなコードをかくことを防げる。効率化。また、オブジェクトを体系化するので流れがみれて良い。
- 抽象化・・・おそらくポリモーフィズムの逆。共通のものをうけつぎ使用すること?
- ポリモーフィズム・・・おそらくoverrideで実現している。基本的にうけつぐが、変えたい場所があるときには変えれるという概念?
最後に
アインシュタインは言いました、「むずかしいことをむずかしい内容のまま伝えるより、むずかしい内容を分かりやすく伝えることのできる人のほうがはるかに優秀」だと。また、あの相対性理論でさえ、「軸となるロジックの部分は小学生でも理解できるように伝えたい」とも。