Javaプログラマ Bronze SE 〜資格試験のテキストを学習〜

イントロダクション

Javaを勉強する目的の1つとして「資格を取る」というのがあると思います。

資格試験の学習をすることになりましたので、折角だから内容に関して、自分なりの解説と、練習問題を作成しました。

プログラムとは

早い話が、アプリケーションを作成するものです。色々と記載がありましたが、早い話がそういうことです。

「電卓アプリの場合」
①電卓アプリを起動する → 電卓画面を作成し表示する
そして入力されたことを一時的に記憶する
②数字の「2」をクリックする → 表示エリアに「2」を表示する
そして入力されたことを一時的に記憶する
③「+」をクリックする → 表示エリアに「2+」を表示する
そして入力されたことを一時的に記憶する
④数字の「3」をクリックする → 表示エリアに「3」を表示する
そして入力されたことを一時的に記憶する
⑤「=」をクリックする → 記憶していた「2+3」を元に演算処理を行う
⑥演算結果の「5」を表示する、一時的に臆していた「2+3」を消す

Javaテクノロジーの特徴

①Write Once, Run Anywhere(一度書けばどこでも動く)
②Java仮想マシン(JVM)による処理
③オブジェクト指向

それぞれに細かい説明がありますが、早い話が、JVMをインストールしたデバイス(PC, スマートフォン, スマートデバイス etc...)ならどのデバイスでも動かすことができるというものです。

少し昔の話ですが、Windowsでないと動かない、Macでないと動かない。。。などのような問題があり、アプリケーションを作る方も大変でしたが、昨今はJavaでどのプラットホームでも動くようになりました。
ちなみに、C / C++(言語)では「クロスプラットホーム」などと言って、同じコードをWindows, Linux, MacなどのOSで動くアプリケーションを作成する手段を持っています。

「クロスコンパイル」という方法でアプリを作成します。

Javaでも同じようなことができます。最近だとGLUONでアンドロイド、iOSのどちらでもアプリケーションが作成できるというテクノロジーがあります。

JavaSE

JavaSEとは、Javaテクノロジーのベースになるもので、演算処理のほとんどをこのテクノロジーで実行します。

まとめると、JavaSEの上にJavaMEやJavaEEが乗っている形になります。
「乗っている」というのは土台に「JavaSEがないと動かない」という意味です。

まぁJavaSEの理解ありきでJavaMEとかJavaEEとかやりましょうということです。

JavaME

携帯電話や、家電、コンピュータ以外のプラットホーム向け開発環境での開発に使用します。BluetoothやICカード、電子部品の操作など行うAPIが揃っています。

JavaEE

Webアプリケーションを含む、大規模開発向けの開発環境
※大規模アプリケーション=大手百貨店のECサイト、企業向け顧客管理、在庫管理などのシステム

開発環境構築

Javaを使用して開発を行うのには(どの言語でも同じですが)開発環境構築が必要になります。

多くの開発現場で使用されているのがEclipseという開発ツール(IDE)です。

行う事は以下の通りです。

1.アプリケーションなので、インストールして使用します。詳細は下のリンクに記載しました。

開発環境構築~Windows版Eclipseの設定~

2.JDKのインストール、JVMが入っています。その他便利なツールがセットになっています。DerbyというDBも入っています。

3.パス(Path)を通す。これは環境変数のPathにJDKに入っているJVM(Java.exe)へのパスを設定します。こうする事で、パソコンはJAVA_HOMEという環境変数の名前でJVMへアクセスすることができます。

プログラムの実行まで

  1. ソースコードを書く
  2. コンパイル
  3. プログラム実行

上の様な手順で実行します。

小さなプログラムであれば作成する、ファイルも少なくオブジェクト指向での実装をしなくても問題ありませんがチームでの開発時には、オブジェクト指向での実装がやりやすいと思います。

そのために、文法やデータ型の理解で学習を終わらせず、クラスの作成〜継承を学習して簡単なアプリを作成するとより実戦的な学習ができると思います。

下のリンクは、簡単なゲームを作成した時の記事です。クラス別に役割を与え実装しました。設計時にどの様に役割分担するか、決めて置くところがポイントです。

Java テキストRPG(戦闘シーンのみ)を再作成する~LWJGLを参考に作り直す~

Java テキストRPG(戦闘シーンのみ)を再作成する2~設計からやり直す~

プログラミング

JavaはC言語をベースに作られた言語ですので、文法もC言語と似ています。

リテラル(データ型)、条件分岐、繰り返しなどほぼ同じです。

下のリンク先にプログラミング学習フロー(提案).を記載しています。

Java はじめて 学習フロー