Java はじめて2 〜メソッドを呼び出す〜

イントロダクション

今回は「メソッド」についてやります。前回やった「メインメソッド」との違い、作り方などについて記載します。

Javaでのはじめのプログラム「ハローワールド」を実装しました。これは、クラスを作り、メインメソッドを作り、起動する。という順序で作業を行いました。下のものはターミナル(コマンド実行でやったものです。)

メソッドを実装する

まずは、前回作成したコードを見て見ます。
「MainMethodTest」クラスに「メインメソッド」を実装しています。

/** 
 * メインメソッドテストクラス
 */
public class MainMethodTest {
   /** メインメソッド */
   public static void main(String[] args) {
      System.out.println("Hello World");
   }

}

<ショート動画>

ハローワールドのコード解説 in スクラッチ

上の、「\/\**」〜「*/」で囲まれている部分のことをJavaDocと呼び、クラスやメソッドの説明コメントとして記述する場所です。
このJavaDocはHTMLドキュメントとして、出力して使うことができるので綺麗に、見えるように記載することをお勧めします。
※javadocコマンドを使用します。ほか、eclipseなどのIDEでも出力することができます。
しかし、今回は、説明が増えてしまうので、ダメなJavaDocを記載しています。

そして、「\/*」〜「*/」で囲まれている部分のことをコメントと呼び、メソッドの説明などに使用します。しかし「// XXXX」という形で1行コメントが書けますので、こちらのほうが多く使われているように感じます。

ハローワールドを実際にやってみた動画です。

コマンドの話

今回、前回もですが、コマンドからJavaを起動するのに多少のコマンドに対する知識→使い方を知っておくと便利なので記載しておきます。
コマンドというのは、Macであればターミナル、Windowsであればコマンドプロンプトを使用して実行することです。下のような画面です(Macの場合)

カレントディレクトリ:コマンドプロンプトやターミナルを開いたとき、表示されているディレクトリコマンド「pwd(MacやLinuxで使用できます。)」
ちなみにウィンドウズの場合は初めからカレントディレクトリが表示されています。
コマンドの左側に「C:¥Document¥XXXX」のように書いてあるのがそれです。開いたときに現在いるフォルダを示します。
試しに「open」コマンドを叩く(入力してエンターキー押下)するとフォルダが表示されるので試しにどうぞ。
<そのほか>

MacやLinux
lsコマンド→カレントディレクトリのファイル一覧
cdコマンド →ディレクトリの移動
Windows
dirコマンド→カレントディレクトリのファイル一覧
cdコマンド→ディレクトリの移動

があります。

メソッドの実装

前回作成したのはメインメソッドでした、今回は通常のメソッドを実装します。
メインメソッドは、どんな時でも「必ず1つで、必ず起動する」ものでしたが、今回の通常のメソッドは「似たようなものがたくさんあって必ずしも起動しなくても良い」ものになります。まぁ「不要なものは作成しない」の基本ですが。。。例外としてそのようなこともあり、「実装上でのビルドエラーもありませんよ」ということです。

百聞は一見にしかず

早速コードを見て見ましょう。土台にするのは前回のコードです。変更するのは「1+1」の表示を加えて見るところです。

/** 
 * メインメソッドテストクラス
 */
public class MainMethodTest {
   /** メインメソッド */
   public static void main(String[] args) {
      System.out.println("Hello World");
      outCaluclation();
   }

   /** 1 + 1の計算結果をコンソールに出力 */
   public static void outCaluclation() {
       System.out.println("1 + 1 = " + (1 + 1));
   }
}

上記のコードで、メインメソッドはpublic static void main(String[] args) {XXX}と始まる部分で、
その下にあるpublic static void outCalculation() { XXX}と実装している部分が通常のメソッドになります。

四則演算の解説

しかし、今回は説明のため、メインメソッドから直接メソッドをよびだしていますが、これはあまりお勧めできない実装方法です。
理由は、不用意に「staticメソッドを作成しない」ということです。インスタンスを作成する必要がないのであれば、問題ありませんが、「なんとなく」でしようするのは「よろしくない」ということです。
本来ならば下のように実装します。

/** 
 * メインメソッドテストクラス
 */
public class MainMethodTest {
   /** メインメソッド */
   public static void main(String[] args) {
      MainMethodTest main = new MainMethodTest();
      System.out.println("Hello World");
      main.outCaluclation();
   }

   /** 1 + 1の計算結果をコンソールに出力 */
   public void outCaluclation() {
       System.out.println("1 + 1 = " + (1 + 1));
   }
}

<ショート動画:四則演算の例>

処理内容について

<クラスとメソッドの解説がある動画です>

メインメソッドの中で行なっている処理は下のようになります。1行ずつ理解していくのがポイントです。

1: public class MainMethodTest { // このクラスは「MainMethodTest」という名前のクラスですよ。という意味

2: public static void main(String[] args) { // メインメソッド、固定でどんな環境でもJavaのメインメソッドはこのように書きます。一言一句違う時は別のメソッドとしてJVMに認識されます。

3: System.out.println("Hello World"); // 標準出力に"Hello World"という文字列を表示します。

4: outCaluclation(); // 下の方に定義している「outCaluclation();」メソッドを呼び出します。

5: public void outCaluclation() { // outCaluclationメソッドの宣言(定義)、返却値なし、引数なしのメソッドを定義します。

6: Systme.out.pintln("1 + 1 = " + (1 + 1)); // outCaluclation()メソッドの処理を記述します。文字列「1 + 1 = 」を作成、1 + 1の計算結果を左の文字列に連結しコンソールに出力

コメントが、長ったらしくなりましたが。以上のような内容で処理を行なっています。

引数

ここで、ちょっときになる部分があります。
System.out.println("Hello World");"Hello World"は一体なんなのか?というところです。実際にプログラムをいじって見ると、ここの部分は変更してやると表示内容が変わります。

この部分を引数と呼びます。そしてvoidと書いてある部分は「返り値」を定義する部分になります。「void」は「返り値なし」という意味です。
例を下に挙げます。メソッドの書き方です。

アクセス修飾子 返り値 メソッド名(引数) { ... }; 

①「どのクラスからもアクセスできる、返り値がStringの引数なし」のメソッド「say」を定義すると下のようになります。

public String say() { ... }

②「どのクラスからもアクセスできる、返り値がStringの引数がint型」のメソッド「hello」を定義すると下のようになります。

public String hello(int num) { ... }

アクセス修飾子に関してはこちらの記事をご参考ください。
サンプルとして下の動画を作成しました。

ついでに、プログラム引数を使用してみた動画も作りました。

ソースコードを中心に解説

Step1_1.javaを解説しています。パッケージの書き方、メインメソッド、JavaDoc、通常のコメントなどです。


今回はここら辺で。

でわでわ。。。
<<< 前回 次回>>>

サイトマップ

関連ページ

Java Basic Level1~

  1. Java Basic Level 1 〜Hello Java〜
  2. Java Basic Level2 〜Arithmetic Calculate〜
  3. Java Basic Level3 〜About String class〜
  4. Java Basic Summary from Level1 to 5
  5. Java クラスの書き方〜ワンポイントレッスン的な〜


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

イントロダクション

今までは、技術屋的にぶっつけ本番的なJavaプログラミングの方法を記載してきたように思います。
※説明などがザツだったと反省した次第です。。。

ここで、初めてJavaを学習し始めた時のことを思い出し、もう一度似たようなこと記載することになりますが、別な角度でJavaの習得に向けたアプローチをしていきたいと思う次第です。

作成したコードはGithubにアップしています、ダウンロードして、改造してもよいし、書き写してもよいです。

ちなみに、書き写して実行してみるのが一番の学習になります。「覚える」ということと「コードを書く」ということになれるので学習効率が高いと思います。そして、プログラミングは、「知識」ではなく「技術」なので使ってなんぼです。理論は後からついてくるので、細かいことは気にしなくてよいです。

まずは、書いて動かす!それから何がどう動いたのか?を考える」ということが大切です。

もう少しいうと、「書いて手を動かすのが技術」で「物事を順序だてて考える事が理論です」。ちょっと極端な言い方ですが、技術が身についてきたらわかると思います。まずは楽しくプログラミングしましょう。それが最も効率の良い学習方法です。

動画にしました。よかったらどうぞ。

Javaプログラミング

Java言語以外にもたくさんのプログラミング言語があります。その中で「なぜJavaを学習するのか?」という疑問には、次のように答えたいと思います。

  • C言語よりも簡単 ※そういう意図で作られた言語です。
  • どのOSでも動かせる。
  • マルチスレッドで動かせる
  • コミニティなどサポートが沢山ある
  • 他の言語との親和性が高い ※Javaからほとんどの言語を起動することができます。
  • ネットワーク経由で起動することができる

その他色々ありますが、ここまでにしておきます。

Javaアプリの動かし方

はっきり言って「アプリ(アプリケーション)」と言っても、最小レベルの「アプリ(アプリケーション)」になります。俗に言う所の「ハローワールド」になります。

くどいようですが、「ハローワールド」は基本にして全てです。

Javaアプリケーションは「メインメソッドが必ず動く」という事を、まずは理解しましょう。言葉を変えると、Javaアプリケーションはメインメソッドから処理を見ていけば、すべてが読み解けるということです。

いろんな疑問の声が聞こえてきそうですが、それは後々に答えたいと思います。そして、メインメソッドは下のような書き方で書かないといけません。固定で、決まっているということです。次のように書きます。※引数の変数名「args」は変更しても大丈夫です。

public static void main(String[] args) {
 // 何かしらのプログラム
}

学習内容

以下の項目を学習します。

  1. メインメソッドとは何なのか?
  2. ハローワールドプログラムの書き方
  3. コメントの書き方
  4. コメントの種類「JavaDocコメント」「通常のコメント」

ハローワールドの実行

とりあえずは下のコードを見てください。コメントの書き方も記述していますが、気にしなくて良いです。
ちなみに次の部分がコメントです。コメントはプログラムの説明などに使用するプログラムコードとしてJVMに認識されない部分です。

  • JavaDocコメント/** ~ */で囲まれた範囲
  • 通常コメント/* ~ */で囲まれた範囲
  • //が書いてある一行

Step1_1.java

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)  メインメソッド このメソッドの「{」から「}」までの間が動く

図にすると下のような形になります。※クラス名が違います。失礼。。。

学びのポイント

  1. クラス名はどこに書くのか?
  2. クラスとファイルの名前は一緒にする(Step1_1.javaを作成する)
  3. メインメソッドはどれか?
  4. 「{」から「}」までの間が範囲を示す。これを「スコープ」と呼ぶ

上記のコードとはクラス名が違いますが、ハローワールドを実行しているのは変わりませんので、参考にしてください。
このプログラムはハローワールドと言ってはじめのプログラムとして殆どのプログラム言語で実装するプログラムです。

Javaはクラスが単位になる

Javaはまず先に「クラス」があって、それを「コンパイル」して。。。と以下のような順序でファイルを変換して起動します。

  1. javaファイルにコードを実装する(今回はStep1_1.java)。クラス名=ファイル名である必要があります。(Java実装の基本的なルールです)
  2. コンパイルする。javaファイル→classファイルに変換
  3. JVM(Java Virtual Machine"Javaバーチャルマシン")がclassファイルを読み込み、処理を実行する

はっきり言って、文字で内容を読んでも意味がわかりません。なので実際にやって見ます。
<Macで実行>

自分は、作業用PCとしてMacを使用しているのでコマンドはUnix系(Linux)と同様なコマンドが使用できます。つまり、Windowsのコマンドプロンプトとは勝手が違うので、その部分にご注意いただきたく思います。

実践:Javaアプリを起動する

javaファイルを作成して、プログラムを実行してみましょう。

Javaをインストール

マックにしろウィンドズにしろJDKにパスを通す(Javaをインストールする)必要があります。環境変数に関しては下の環境構築の記事に記載しています。
また、開発用のアプリケーション、IDEをインストールして使いましょう。スタンダードなのは、EclipseとかIntelliJといったとこでしょうか?
<開発環境のインストール>

  • 開発ツール(IDE)のインストール方法複数(載せてます。)
  • Windows版Eclipseのインストール方法
    <マックの場合>

    1. (Macなので)ターミナルを起動します。
    2. 「vi」コマンドでファイルを作成します。
    3. 上のコードを実装します。
    4. javaファイルをコンパイルします。ターミナル(Mac)エンターキー押下
    5. classファイルを実行します。「java Step1_1」と入力してEnterキー

    前提として「Java」をインストールする必要がありますが、その部分に関しては、下の記事を参照していだきたく思います。

<ウィンドウズの場合>

  1. テキストエディタを起動しコードを実装
  2. コマンドプロンプトで移動しやすい場所に保存
  3. コマンドプロンプト(Windows)で「javac Step1_1.java」と入力してEnterキー
  4. コマンドプロンプト(Windows)で「java Step1_1」と入力してEnterキー

そしてJavaのインストール、つまり、Java(JDK)のインストールはこちらのリンクを参照ください。Windows版の場合はこちらのリンクです。

どちらも、ダウンロードしてインストーラでインストールを行うので、簡単にできます。

インストールの確認。

実装してみる

上記で、記載したように、順番に作業を進めます。
というか、動画を作成したのでそれを見ていただくと「こんな感じ」というのがわかると思うので、こちらをどうぞ

このような形で、実装〜起動までを行います。
今後、Javaのコーディングなどを行うときにはEclipseなどのIDEでの実行がほとんどになると思います。
理由は「楽だから」、実際に開発の仕事でもEclipseはよく使うので、使えて損はありません。

でわでわ。。。

## 初めのプログラムの解説

次へ >>>

サイトマップ

関連ページ