ぽれプログラミングゲーム節約お役立ち情報お問い合わせニート脱出のためプログラミングを始めた30代後半おじさんの冒険録。>プログラミングスッキリわかるJava入門のレビューと学んだことまとめ2019年11月27日TwitterSharePocketHatenaLINEコピーするスッキリわかるJava入門を読み終えたので簡単なレビューと学んだことのまとめを書きます。全編通してわかりやすい説明で、この本を選んでよかったと思っています。前半(5章まで)はちょっと詰め込みすぎ感がありました。読むばっかりでコードを書けないことが多くて退屈な部分も。中盤のオブジェクト指向からは、説明と練習問題の割合がちょうどよく楽しく学習できました。読み終えるまでの所要時間は55時間ほどでした。6章から本腰を入れて読むprogateの無料部分と、この本の5章まではほぼ同じ内容です。progateの方がコードを書きながら学べて退屈しにくくなっています。progateをやってから、この本の5章までを復習がてらに読み、6章からじっくり勉強しましょう。すると前半部分で挫折しにくくなると思います。この本の最も良い所はオブジェクト指向というわかりにくい部分について、初心者向けに丁寧にわかりやすく解説してくれる所です。オブジェクト指向以外の所は他で勉強して、オブジェクト指向はこの本で学ぶのが最適でしょう。条件分岐と繰り返し配列メソッド上記は割愛。オーバーロード・・オーバーロードとは同じ名前のメソッドを定義すること。似た内容のメソッドを複数作りたい時に使う。add(a,b,c)add(a,b)add(a)クラス・・クラスの用途は3つ1、ソースファイルを分割して分かりやすくする。役割ごとにクラスを分ける。「クラス名.メソッド名()」で呼び出せる。2、newによる利用:インスタンスを産み出すために、そのクラスを利用する。別のクラスを開発する際、ゼロからつくると効率が悪いので、あるクラスを継承元として利用する。現実に似せて作り、現実に似せて動かす。人間に理解できるプログラム開発を実現する。人や物をオブジェクト化していく。銀行を自動化(ATM)する場合。お客さんから受付が要望聞くお客「引き出しをお願い」--本人確認フェーズ--通帳とハンコを借りる。通帳の情報から店内の帳簿を探す。通帳の取引記録と店内帳簿の記録をを照合する。本物か印鑑記録と照合する。--本人確認フェーズ終了--金庫からお金を持ってくる。引き出し取引を通帳と店内帳簿に記録する。お客さんにお金を渡す。・必要なオブジェクト受付オブジェクト通帳オブジェクトハンコオブジェクト(本人確認オブジェクト)店内帳簿オブジェクト金庫オブジェクト受付オブジェクト(インスタンス)がMainクラスで各オブジェクトに指令を出す。◆実際のところnewで生成したメモリ領域。大きめのデータを入れるために確保されたメモリ領域。上記の変数にインスタンスが入っている。Hero();◆thisthis.は自分のインスタンスを示す。勇者は剣を持っている。コンストラクタ・・コンストラクタとはクラス名と同一名称で、戻り値の型が明記されていないメソッドのこと。した時点でコンストラクタが呼び出される。・・用途newでインスタンスを生成した時点で実行したい処理がある時に使う。//コンストラクタ発動!!・・特徴オーバーロードで同じ名前のコンストラクタを複数定義できる。this()で同一クラスの別コンストラクタを呼び出せる。全てのコンストラクタは先頭で親コンストラクタを呼び出さなければならない。ないと自動で追加される。子コンストラクタの先頭にsuper()がなければ、自動的にsuper();が追加される。親コンストラクタに引数が必要な場合、エラーになる。・publicどのクラスからもアクセスできるということ・void戻り値なしstatic(静的メンバ)とは・・staticstaticとは静的や固定という意味。クラス特有の値やメソッドということ。インスタンスではなく、クラスに実体が作られる。インスタンス生成しなくても使える。逆にインスタンス毎の値を持てなくなる。各インスタンスに共通の値を持たせたい時に使う?・例:RPGの3人パーティでHPは個別にしたいが、お金はパーティ共有にしたい場合。しなくても使えるクラスのメソッドが欲しい時。//メソッドにstaticを付ける。//メソッドにstaticを付ける。変数やクラスへのアクセスを制御したい時。全てのクラス↑↑上にいくほど制限が厳しい◆一般的な使い方フィールドは全てprivateメソッドはすべてpublicクラスは全てpublic基本は上記の通りにして、必要に応じて使い分けていく。IllegalArgumentException("不正な名前です。IllegalArgumentException("不正な名前です。子クラスAは親クラスBの一種である〇スーパーヒーローはヒーローの一種である×家はアイテムの1種である。同じメソッド名を親と子クラスに書くと親のメソッドを上書きできる。finalクラスfinalメソッドは継承できない。・・親クラスへのアクセスsuper.メソッド名super.フィールド名super()で親クラスを呼び出せる。superは親まで、祖父母インスタンスまではアクセス不可能。下の子クラスから読み込まれ、なければ親クラスを読みに行く。子クラスの中に親クラスが入っている感じ。継承用の抽象的なクラスを作っておきたい時。できないのでインスタンスとして使えない。継承専用のクラスとなる。将来確実に必要になるが、今は内容未確定の空メソッドを継承用に作っておきたい時。・効果このメソッドは未確定だから、ちゃんとオーバーライドしてね、という目印になる。子クラスは抽象メソッドをオーバーライドしないとエラー出る。抽象メソッドが一つでもあるクラスは抽象クラスにしないとエラー出る。}⇐の中身は書けない。処理内容は未定ということ。インターフェース・・インターフェース抽象的過ぎてほとんど中身がないクラスのこと。大まかな型だけを決めたい時。子クラスは型通りの動きをするはず。(子クラスが2つ以上のインターフェースを継承すること。基本的にフィールドを持たない。final(定数)がついたフィールドだけはOK。finalを省略しても勝手に補われる。