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 クラスの書き方〜ワンポイントレッスン的な〜


投稿者:

takunoji

音響、イベント会場設営業界からIT業界へ転身。現在はJava屋としてサラリーマンをやっている。自称ガテン系プログラマー(笑) Javaプログラミングを布教したい、ラスパイとJavaの相性が良いことに気が付く。 Spring framework, Struts, Seaser, Hibernate, Playframework, JavaEE6, JavaEE7などの現場経験あり。 SQL, VBA, PL/SQL, コマンドプロント, Shellなどもやります。

コメントを残す