イントロダクション
今までは、技術屋的にぶっつけ本番的なJavaプログラミングの方法を記載してきたように思います。
※説明などがザツだったと反省した次第です。。。
ここで、初めてJavaを学習し始めた時のことを思い出し、もう一度似たようなこと記載することになりますが、別な角度でJavaの習得に向けたアプローチをしていきたいと思う次第です。
作成したコードはGithubにアップしています、ダウンロードして、改造してもよいし、書き写してもよいです。
ちなみに、書き写して実行してみるのが一番の学習になります。「覚える」ということと「コードを書く」ということになれるので学習効率が高いと思います。そして、プログラミングは、「知識」ではなく「技術」なので使ってなんぼです。理論は後からついてくるので、細かいことは気にしなくてよいです。
まずは、書いて動かす!それから何がどう動いたのか?を考える」ということが大切です。
もう少しいうと、「書いて手を動かすのが技術」で「物事を順序だてて考える事が理論です」。ちょっと極端な言い方ですが、技術が身についてきたらわかると思います。まずは楽しくプログラミングしましょう。それが最も効率の良い学習方法です。
動画にしました。よかったらどうぞ。
Javaプログラミング
Java言語以外にもたくさんのプログラミング言語があります。その中で「なぜJavaを学習するのか?」という疑問には、次のように答えたいと思います。
- C言語よりも簡単 ※そういう意図で作られた言語です。
- どのOSでも動かせる。
- マルチスレッドで動かせる
- コミニティなどサポートが沢山ある
- 他の言語との親和性が高い ※Javaからほとんどの言語を起動することができます。
- ネットワーク経由で起動することができる
その他色々ありますが、ここまでにしておきます。
Javaアプリの動かし方
はっきり言って「アプリ(アプリケーション)」と言っても、最小レベルの「アプリ(アプリケーション)」になります。俗に言う所の「ハローワールド」になります。
くどいようですが、「ハローワールド」は基本にして全てです。
Javaアプリケーションは「メインメソッドが必ず動く」という事を、まずは理解しましょう。言葉を変えると、Javaアプリケーションはメインメソッドから処理を見ていけば、すべてが読み解けるということです。
いろんな疑問の声が聞こえてきそうですが、それは後々に答えたいと思います。そして、メインメソッドは下のような書き方で書かないといけません。固定で、決まっているということです。次のように書きます。※引数の変数名「args」は変更しても大丈夫です。
public static void main(String[] args) {
// 何かしらのプログラム
}
学習内容
以下の項目を学習します。
- メインメソッドとは何なのか?
- ハローワールドプログラムの書き方
- コメントの書き方
- コメントの種類「JavaDocコメント」「通常のコメント」
ハローワールドの実行
とりあえずは下のコードを見てください。コメントの書き方も記述していますが、気にしなくて良いです。
ちなみに次の部分がコメントです。コメントはプログラムの説明などに使用するプログラムコードとしてJVMに認識されない部分です。
- JavaDocコメント
/** ~ */
で囲まれた範囲 - 通常コメント
/* ~ */
で囲まれた範囲 //
が書いてある一行
public class Step1_1 {
/**
* メソッドに対するJavaDocコメント部分
* 単純クラス定義の上に書けばクラス、メソッド定義の上で書けばメソッドに対応するJavaDocとなる
*
* <メインメソッドについて>
* Javaではプリグラムを起動する時には必ずこのメソッドが起動する。
* Webアプリケーションなどは、メインメソッドの場所がわかりずらいので別の機会に説明する
*
* <メインメソッドの書き方>
* 必ず下記のような書き方に成る。[注意]→(String args[])でもよいが今はそういう事にしておきます。。。
* 「public static void main{String[] args) { 〜プログラム処理〜 })」のようになる。
*
* ↓パラメータ(引数)の内容を説明する。時に使用する
* プログラムを起動する時に「javaファイルを右クリック」→「実行」→「実行の構成」の引数タブを参照
* 「プログラムの引数」に「aaa」と入力した時、
* 変数argsに"aaa"が渡されるスペースで区切ると複数渡す事もできる
*
* @param args メインメソッドの引数はプログラム引数を示す
*/
public static void main(String[] aabb) {
// 1行コメント部分
/*
* 複数行コメント部分
* 処理の説明など複数行に渡りコメントを記述する
*/
System.out.println("Hello World!");
}
上のコードが、自分で作成したクラス「Step1_1」クラスです。そしてその中にメインメソッドがあります。
これを分解しすると下のようになります。
コード | 示すもの | 内容 |
---|---|---|
Step1_1 | クラス名 | プログラムの単位 |
public static void main(String[] args) | メインメソッド | このメソッドの「{」から「}」までの間が動く |
図にすると下のような形になります。※クラス名が違います。失礼。。。
学びのポイント
- クラス名はどこに書くのか?
- クラスとファイルの名前は一緒にする(Step1_1.javaを作成する)
- メインメソッドはどれか?
- 「{」から「}」までの間が範囲を示す。これを「スコープ」と呼ぶ
上記のコードとはクラス名が違いますが、ハローワールドを実行しているのは変わりませんので、参考にしてください。
このプログラムはハローワールドと言ってはじめのプログラムとして殆どのプログラム言語で実装するプログラムです。
Javaはクラスが単位になる
Javaはまず先に「クラス」があって、それを「コンパイル」して。。。と以下のような順序でファイルを変換して起動します。
- javaファイルにコードを実装する(今回はStep1_1.java)。クラス名=ファイル名である必要があります。(Java実装の基本的なルールです)
- コンパイルする。javaファイル→classファイルに変換
- JVM(Java Virtual Machine"Javaバーチャルマシン")がclassファイルを読み込み、処理を実行する
はっきり言って、文字で内容を読んでも意味がわかりません。なので実際にやって見ます。
<Macで実行>
自分は、作業用PCとしてMacを使用しているのでコマンドはUnix系(Linux)と同様なコマンドが使用できます。つまり、Windowsのコマンドプロンプトとは勝手が違うので、その部分にご注意いただきたく思います。
実践:Javaアプリを起動する
javaファイルを作成して、プログラムを実行してみましょう。
Javaをインストール
マックにしろウィンドズにしろJDKにパスを通す(Javaをインストールする)必要があります。環境変数に関しては下の環境構築の記事に記載しています。
また、開発用のアプリケーション、IDEをインストールして使いましょう。スタンダードなのは、EclipseとかIntelliJといったとこでしょうか?
<開発環境のインストール>
- 開発ツール(IDE)のインストール方法複数(載せてます。)
- Windows版Eclipseのインストール方法
<マックの場合>- (Macなので)ターミナルを起動します。
- 「vi」コマンドでファイルを作成します。
- 上のコードを実装します。
- javaファイルをコンパイルします。ターミナル(Mac)エンターキー押下
- classファイルを実行します。「java Step1_1」と入力してEnterキー
前提として「Java」をインストールする必要がありますが、その部分に関しては、下の記事を参照していだきたく思います。
<ウィンドウズの場合>
- テキストエディタを起動しコードを実装
- コマンドプロンプトで移動しやすい場所に保存
- コマンドプロンプト(Windows)で「javac Step1_1.java」と入力してEnterキー
- コマンドプロンプト(Windows)で「java Step1_1」と入力してEnterキー
そしてJavaのインストール、つまり、Java(JDK)のインストールはこちらのリンクを参照ください。Windows版の場合はこちらのリンクです。
どちらも、ダウンロードしてインストーラでインストールを行うので、簡単にできます。
インストールの確認。
実装してみる
上記で、記載したように、順番に作業を進めます。
というか、動画を作成したのでそれを見ていただくと「こんな感じ」というのがわかると思うので、こちらをどうぞ
このような形で、実装〜起動までを行います。
今後、Javaのコーディングなどを行うときにはEclipseなどのIDEでの実行がほとんどになると思います。
理由は「楽だから」、実際に開発の仕事でもEclipseはよく使うので、使えて損はありません。
でわでわ。。。
## 初めのプログラムの解説
次へ >>>
関連ページ
- Java Hello World はじめのプログラム 〜 Step1-1〜
- ステップアッププログラミング〜Java FxでHelloWorld解説〜
- Java オブジェクト指向基礎 ~オブジェクト指向コンセプト~