今回の「Javaはじめて〜」は、自分が昔使用したテキストを見ながら作成しました。
Java Basicは自分の思いだけで作成しましたが、今回はテキストを見ながら作成したので、また違ったアプローチです。
以下の基本を理解出来たら、下のようなアプリケーションを作成することも可能です。
基本的な技術を使用して作成しています。ただしコマンドの取得部分にはちょっと難しいことをしています。(java.lang.refrect)を使用しています。以下のようなアプリです。
「テキストRPG(戦闘シーンのみ)」
ハローワールド
- メインメソッド1、でハローワールドを作り、Javaプログラムの起動方法などを実施します。
- メインメソッド2、で自分でメインメソッドを作るのに必要な知識(書き方)などを記載しています。コマンドプロンプト(Macなのでターミナルを使用しています。)でのJavaプログラムの実行を動画付きで記載しています。
- コメントの書き方、シンプルにコメントの書き方を記載しています。
- 練習問題をやってみる、実際に問題を解き、自分でコードを組んで見てください。
変数を使う
プログラムを作って何かしらの処理をやらせようとしたときに「変数」を使用してデータとか、いろんなメソッドを呼び出したいことが多くなります。その第一歩目という形でコードの書き方や、変数の概念について記載しました。主にデータ型に関して記載しています。
- 変数について
- データ型について、変数のデータ型に関してたくさんあるので、その中の「byte型, char型
, boolean型」について記載しています。
- 配列について、配列という言葉は聞いたことがあると思います、1つの変数で、複数のデータを扱いたいときに活躍するので、基本の1つとして理解しておきたいことです。
- boolean型とif文、boolean型は「True」と「False」しか値を持ちませんが、多用するデータ型です。よく使うのが条件分岐処理を使用するときです。条件分岐といえば「if文」なので一緒に理解しておきましょう。
- switch文、昔の「switch文」は数値のみ(int, longなど)しか判定に使えなかったのですが、Java1.8(Java8)以上では文字列も使えるようで、ほとんどif文と変わらない感じです。
コードを書くときに、if文と違いネストが深くならないのでif文と組み合わせたりして見やすいコードが書けると良いと思います。
ループ処理
- for文A、昔ながらのfor文です、配列と組み合わせるとか計算処理を行うのであればこの形のfor文を使います。C言語や他の言語でも同じような書き方ができます。
- for文B、俗にいう「拡張for文」というやつです。配列やListインターフェースで取得したデータの処理を行うときに便利です。
- while文、ゲームを作るときに「無限ループ」を作ってやり、そこから条件分岐でループを抜けたり、抜けなかったりして処理を繰り返します。そんなループを作るときに便利です。
- do-while、正直のところあまり使いません。よっぽど複雑なことをやろうとしたときに使うかもしれませんが、「複雑な設計」は設計としてよろしくないので。。。
オブジェクト指向
とりあえずは「クラスの作成方法」に関して、この「クラス」を1つの単位(オブジェクト)として、(アプリケーション作成に関して)考えること、またはそのような考え方(実装方法)のことを「オブジェクト指向」と呼びます。
設計と実装
オブジェクト指向の基本単位「クラス」の作り方がわかったら、今度は「どのように組み合す?」とか「この機能を実装するのにどう考える?」ということを考える必要があります。
部品の概念がわかってきたら今度はクラスの実装部分に関して掘り下げて行きます。
そして、クラスを拡張していろんな機能を追加して行きます。次はチェック処理を追加します。
クラス拡張の考え方に関して触れます、題材として「コーダー銀行」のATMを実装するテイで行います。
ここで基本になる考え方が「オブジェクト指向」です。そして実装方法として「テスト駆動開発」を採用して行います。
個人的に。。。ですが、テスト駆動でやったほうが、問題やバグも洗い出せるし、何よりも「早い話が何なのよ?」に対する答えが出しやすいと思います。
テスト駆動でまず考えるのは「どう動けばいいの?」です。
ここまでで、どの様に考えてどの様に実装するのか?に対する疑問点を解消できると思います。
次は、実装(テストケース実装)を行います。テストケース(どの様に動くか?)を作成した後にテストを実行(ここではKozaManagerクラスの実装)を行います。テストケースがあるので、コードを書く→とりあえず実行→修正→コードを美しくする→完了という手順を踏めます。
とりあえずではありますが、一通り基本的なことをやって見ました。
ここから、作りたいもの(実現したいこと)などのツールとしてプログラムが役に立つと思います。ちなみに、自分はOpenCVを使用して人やものをターゲッティングするカメラを作成したいと思っています。
これに必要な機材としては、ステレオカメラ(レンズが2つついているもの)とラズパイで。。。と考えています。
でわでわ。。。