Java Basic 学習フロー

プログラム言語のJavaを学習しようかな?と思った時
「どの様に学習を進めていけば良いか?」の答えになれば良いと思います。

あくまでもサンプルなので、自分なりに解釈してもらえれば幸いです。

学習フロー(Step to learn)

イントロダクション(Introduction)

例えば、プログラムをはじめる。。。
例えば、ギターをはじめる。。。

などなど、何かをはじめて続けるためには(一朝一夕にはできないので)目的とか動機が必要になります。
その動機付け、の次にある「進め方のサンプル」になればと思い、こんな記事を書きました。

0. はじめる前のJava

導入編

はじめの一歩は「ハローワールド」です。「作る→動かす→確認」を1番小さなレベルで行います。

1. はじめの一歩〜ハローワールド〜
まずは、Javaを動かすための環境を用意する必要があります。基本的にはコマンドでの実行もできるのですが、まともなアプリケーションを作成しようとしたらIDEを使用することになるので、そちらをインストールしてしまいます。詳細に関しては、下のリンク先を参照ください。
開発ツール(IDE)のインストール方法

Windows版Eclipseのインストール方法

とりあえず、動かしたら次は、何かしらの処理を行います。パソコンは元々計算機なので四則計算をやって見ます。

2. 四則計算をやる

そして、計算などのを行なっているとどうしても出てくるのがデータ型です。これは、クラスも型入ります。

3. データ型の扱い

そして、ここまできたらよく使うデータ型も見て見ます。Boolean型はTureとFalseしかないためデータのサイズも小さくうまく使えばとても便利なデータ型です。
4. Booleanなどのデータ型

Booleanが理解できたら今度はお待ちかね「for文」などのループ処理を実装して見ます。
5. For文の書き方

そして「ループ処理」といえば「while文」も忘れてはいけません。
6. while文の書き方

ループ処理ができたら何か処理をして何かを作って見たいのが人情、ゲームっぽく、入力を扱おうと標準入力(コンソールからの入力)を実装しようとすると必要になるのが「try〜catch文」です。
7. try〜catch文の書き方

オブジェクト指向

さらに、アプリケーションを作成しようとすると必要になるのが「クラスに対する理解」なのでクラスについてさわりの部分ですが、理解します。
[オブジェクト指向の概念1〜OracleDocのチュートリアル1〜](https://zenryokuservice.com/wp/2019/10/30/%e3%82%aa%e3%83%96%e3%82%b8%e3%82%a7%e3%82%af%e3%83%88%e6%8c%87%e5%90%91%e3%81%ae%e6%a6%82%e5%bf%b5-%e3%80%9coracledoc%e3%81%ae%e3%83%81%e3%83%a5%e3%83%bc%e3%83%88%e3%83%aa%e3%82%a2%e3%83%ab%ef%bc%91/)

[オブジェクト指向の概念2〜クラスとは〜](https://zenryokuservice.com/wp/2019/10/30/%e3%82%aa%e3%83%96%e3%82%b8%e3%82%a7%e3%82%af%e3%83%88%e6%8c%87%e5%90%91%e3%81%ae%e6%a6%82%e5%bf%b5%e3%80%9c%e3%82%af%e3%83%a9%e3%82%b9%e3%81%a8%e3%81%af%e3%80%9c/)

余談ですが。。。
「クラス」を使うようにする=オブジェクト指向でアプリケーションを作る、のは「大きなもの」を作る時に役に立ちます。例えば凝ったケームなど。。。

例えばRPGを作ろうとして設計までやった時の記事です。
[Java オブジェクト指向 〜テキストRPGキャラクター作成(戦士)〜](https://zenryokuservice.com/wp/2020/03/07/java-%e3%82%aa%e3%83%96%e3%82%b8%e3%82%a7%e3%82%af%e3%83%88%e6%8c%87%e5%90%91-%e3%80%9c%e3%83%86%e3%82%ad%e3%82%b9%e3%83%88rpg%e3%82%ad%e3%83%a3%e3%83%a9%e3%82%af%e3%82%bf%e3%83%bc%e4%bd%9c%e6%88%90/)

当然小さいもの(アプリ)は簡単に、拡張、変更、修正できる。ように、オブジェクト指向に作ります。
[Java オブジェクト指向 〜体系化の方法〜](https://zenryokuservice.com/wp/2020/03/14/java-%e3%82%aa%e3%83%96%e3%82%b8%e3%82%a7%e3%82%af%e3%83%88%e6%8c%87%e5%90%91-%e3%80%9c%e4%bd%93%e7%b3%bb%e5%8c%96%e3%81%ae%e6%96%b9%e6%b3%95%e3%80%9c/)

オブジェクト指向の意味

そして、「いつまでも再利用できるように作るにはどうしたら良いか?」の答えになる考え方が「オブジェクト指向」になります。

その第一歩が「クラスの理解」というわけです。
8. クラスとは

ここで「クラス」というものがおぼろげに見えてきたので、Javaを起動するためにはJRE, JDKが必要になるのですが、この中にすでに作られている(提供されている)クラスがたくさんあります。これらをまとめてJava APIと呼びこれを使用してJava言語は動いています。

このAPIにある代表的なものがListインターフェースクラスです。
9. List インターフェースクラス

Listインターフェースクラスの他にもたくさんのインターフェースクラスがありますが、「インターフェースクラスの概念」を理解しておくと後々役に立ちます、「ポリモーフィズム」というものです。
10. インターフェースクラス

ここまできたら、何か作ってみようと思います。そしてサンプルに作成しようとしたのが「ミニゲーム」です。
11. ミニゲーム作成1

いかんせん、話などを考えていなかったので中途半端になりだらだらと作業が止まっている状態ではありますが、ここからは違うアプローチで行こうと思います。

Java Mid Basic

今までにやったことを復習するのも兼ねて、コンソールゲームを作成します。
第一弾は以下のような感じです。

Java Mid Basic 学習フロー

Javaテキスト(参照書)を解釈

Java はじめて 1 〜メインメソッド〜()

ちょっと、ズレるような気もしますが、設計などしてみるとより「オブジェクト指向」がわかったくると思います。
### オブジェクト指向=考え方です。
1. [設計を始める〜1.アプリイメージ〜](https://zenryokuservice.com/wp/2018/10/25/%e8%a8%ad%e8%a8%88%e3%82%92%e5%a7%8b%e3%82%81%e3%82%8b/)
1. [設計を始める〜2.機能イメージ〜](https://zenryokuservice.com/wp/2018/10/25/%e8%a8%ad%e8%a8%88%e3%82%92%e5%a7%8b%e3%82%81%e3%82%8b%e3%80%9c2-%e6%a9%9f%e8%83%bd%e3%82%a4%e3%83%a1%e3%83%bc%e3%82%b8%e3%80%9c/)
1. [設計を始める〜3.機能概要〜](https://zenryokuservice.com/wp/2018/10/26/%e8%a8%ad%e8%a8%88%e3%82%92%e5%a7%8b%e3%82%81%e3%82%8b%e3%80%9c3-%e6%a9%9f%e8%83%bd%e6%a6%82%e8%a6%81%e3%80%9c/)
1. [Java はじめて16 〜クラス設計から実装〜](https://zenryokuservice.com/wp/2019/09/19/java-%e3%81%af%e3%81%98%e3%82%81%e3%81%a616-%e3%80%9c%e3%82%af%e3%83%a9%e3%82%b9%e8%a8%ad%e8%a8%88%e3%81%8b%e3%82%89%e5%ae%9f%e8%a3%85%e3%80%9c/)

ちなみにGLUONを使用して作成したゲームはこんな感じです。
こんな感じです。余計な音が入っています。

まだまだ続きます。。。

でわでわ。。。