English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Java 基礎教程

Java 流程控制

Java 数组

Java 面向对象(I)

Java 面向对象(II)

Java 面向对象(III)

Java 異常処理

Java 列表(List)

Java Queue(キュー)

Java Map集合

Java Set集合

Java 输入输出(I/O)

Java Reader/Writer

Javaの他のトピック

Java メソッド

このチュートリアルでは、サンプルを使用してJavaメソッドを学び、メソッドの定義方法とJavaプログラムでのメソッドの使用方法を学びます。

方法とは何ですか?

数学では、関数について研究したことがあるかもしれません。例えば、f(x) = x2xは平方値を返す関数です。

If x = 2, then f(2) = 4
If x = 3, f(3) = 9
などです。

同様に、コンピュータプログラミングでは、関数は特定のタスクを実行するコードブロックです。

オブジェクト指向プログラミングでは、これは関数の用語です。関数はクラスにバインドされ、クラスの動作を定義します。

メソッドを学ぶ前に、以下を確認してください。Java クラスとオブジェクト

Javaメソッドのタイプ

ユーザー定義メソッドか、標準ライブラリで利用可能なメソッドかによって、Javaには2種類のメソッドがあります:

  • 標準ライブラリメソッド

  • ユーザー定義のメソッド

標準ライブラリメソッド

 標準ライブラリメソッドは、Javaの内蔵メソッドで、いつでも使用できます。これらの標準ライブラリは、JVMとJREのJavaアーカイブファイル(*.jar)に含まれています。

例えば、

  • print() - はjava.io.PrintStreamのメソッドで、"…"を引用符で印刷します。

  • sqrt() -  数学の授業の一つの方法です。数字の平方根を返します。

これは動作例です:

public class Main {
    public static void main(String[] args) {
    
        //sqrt()メソッドを使用して
        System.out.print("4の平方根は: " + Math.sqrt(4));
    }
}

出力

4の平方根は: 2.0

ユーザー定義のメソッド

私たち自身で選択した方法で特定のタスクを実行することができます。この方法はユーザー定義メソッドと呼ばれます。

ユーザー定義のメソッドを作成する方法はどうですか?

これがJavaで方法を作成する方法です:

public static void myMethod() {
    System.out.println("我的函数");
}

ここでは、myMethod()という名前のメソッドを作成しています。私たちが見ることができるように、私たちはpublic、static、voidを使用してメソッド名の前にいます。

  • public - アクセス修飾子。これは、どこからでも该方法にアクセスできることを意味します。詳細については、以下のリンクを参照してください。Java アクセス修飾子

  • static - これは、オブジェクトなしで该方法にアクセスできることを意味します。詳細については、以下のリンクを参照してください。Java 静的キーワード

  • void - これは、该方法が値を返さないことを意味します。詳細については、このチュートリアルの後半部分でさらに説明します。

これが方法を作成する方法の簡単な例です。しかし、Javaでのメソッドの定義の完全な構文は以下の通りです:

modifier static returnType nameOfMethod (parameters) {
    // method body
}

ここでは、

  • modifier - これはアクセスメソッドをパブリックメソッド、プライベートメソッドなどに定義します。

  • static - staticキーワードを使用すると、オブジェクトを作成せずにアクセスできます。
    例えば、sqrt()は標準のMathクラスの静的メソッドです。したがって、Mathクラスのインスタンスを作成することなくMath.sqrt()を直接呼び出すことができます。

  • returnType - これはメソッドが返す値の型を指定します。例えば、メソッドがintの返却型を持っている場合、整数値を返します。
    原始データ型(int、float、doubleなど)、原生的なオブジェクト(String、Map、Listなど)、または他のすべての組み込みおよびユーザー定義のオブジェクトを返すことができるメソッドです。
    このメソッドが値を返さない場合、その返却型はvoidです。

  • nameOfMethod - これは識別子、プログラム内の特定のメソッドを参照するために使用されます。
    メソッドにどんな名前でもつけることができますが、実行するタスクに名前をつけるのが一般的な方法です。例えばcalculateArea()、display()などです。

  • parameters (arguments) - これらはメソッドに渡される値です。メソッドに任意の数のパラメータを渡すことができます。

  • method body - これは特定のタスクを実行するためのプログラミングステートメントを含んでいます。メソッドの本体は括弧内{ }に含まれています。

    Javaのメソッドをどうやって呼び出すか?

    方法の定義方法を知った今、それらを使用する方法を学ぶ必要があります。そのために、そのメソッドを呼び出す必要があります。どうすればよいのでしょうか

    myMethod();

    このステートメントは、事前に宣言されたmyMethod()メソッドを呼び出します。

    Javaでのメソッド呼び出しのフローチャート
    1.  プログラムコードの実行中に、コード内でmyFunction()に遭遇します。

    2.  その後、myFunction()メソッドに分岐し、メソッドの本体内部でコードを実行します。

    3.  メソッドの本体が実行された後、プログラムは元の状態に戻り、メソッド呼び出しの次のステートメントを実行します。

    例:Javaメソッド

    Javaプログラムでメソッドを使用する方法を見てみましょう。

    class Main {
        public static void main(String[] args) {
            System.out.println("次にメソッドが登場します。");
            //メソッドを呼び出します
            myMethod();
            System.out.println("メソッドは正常に実行されました!");
        }
        // メソッド定義
        private static void myMethod(){
            System.out.println("myMethod()の内部からプリント!");
        }
    }

    出力

    次にメソッドが登場します。
    myMethod()の内部からプリント!
    メソッドは正常に実行されました!

    上記のプログラムでは、myMethod()という名前のメソッドがあります。このメソッドは引数を受け取りません。同様に、このメソッドの戻り値型はvoid(値を返さないことを意味します)です。

    ここでは、メソッドがstaticです。したがって、クラスのオブジェクトを作成せずに该方法を呼び出します。

    もう一つの例を見てみましょう。

    class Main {
        public static void main(String[] args) {
            //Outputクラスのオブジェクトを作成します
            Output obj = new Output();
            System.out.println("次にメソッドが登場します。");
            //OutputのmyMethod()を呼び出します
            obj.myMethod();
            System.out.println("メソッドは正常に実行されました!");
        }
    }
    class Output {
      
        //public: このメソッドはクラス外部から呼び出すことができます
        public void myMethod() {
            System.out.println("myMethod()の内部からプリントします。");
        }
    }

    出力

    次にメソッドが登場します。
    myMethod()の内部からプリントします。
    メソッドは正常に実行されました!

    上記の例では、myMethod()という名前のメソッドを作成しました。このメソッドはOutputという名前のクラスに位置しています。

    メソッドがstaticでないため、objクラスのオブジェクトを使用して该方法を呼び出します。

    obj.myMethod();

    メソッドの引数と戻り値

    前述の通り、Javaのメソッドはゼロ個または複数の引数を持つことができます。また、いくつかの値を返すこともあります。

    例:メソッドの戻り値

    戻り値を持つメソッドの例を見てみましょう。

    class SquareMain {
        public static void main(String[] args) {
            int result;
            //メソッドを呼び出し、戻り値を保存します。
            result = square(); 
            System.out.println("10の平方値は: " + result);
        }
        public static int square() {
            //return文
            return 10 * 10;
        }
    }

    出力

    10の平方値は: 100

    上記のプログラムでは、square()という名前のメソッドを作成しました。このメソッドは何も受け取らず、値を返します。10 *10。

    ここでは、言及しているメソッドの返り値の型はintです。したがって、このメソッドは常に整数値を返すべきです。

    返される値のメソッドの表現形式

    私たちが見たように、このメソッドの範囲は限られています。なぜなら、常に同じ値を返すからです。今度は、メソッドに渡されるどんな整数の平方値も常に返すように、上記のコードスニペットを修正しましょう。10の平方値。

    例:メソッドが引数を受け取り、値を返す

    public class Main {
       
        public static void main(String[] args) {
            int result, n;
            
            n = 3;
            result = square(n);
            System.out.println("3の平方は: " + result);
            
            n = 4;
            result = square(n); 
            System.out.println("4の平方は: " + result);
        }
        // メソッド
        static int square(int i) {
            return i * i;
        }
    }

    出力

    3の平方は: 9
    4の平方は: 16

    ここでは、square()メソッドは引数iを受け取り、iの平方を返します。返された値は変数resultに格納されます。

    Javaで引数を渡し、メソッドから値を返す

    int型の値以外のデータ型を渡した場合、コンパイラはエラーを発生させます。これはJavaが強い型言語であるためです。

     メソッド呼び出し中にgetSquare()メソッドに渡されるパラメータnは実際の引数と呼ばれます。

    result = getSquare(n);

     メソッド定義で受け取るパラメータは形式引数と呼ばれます。形式引数の型は明示的に型指定する必要があります。

    public static int square(int i) {...}

    複数のパラメータをJavaメソッドに渡すためにも、カンマを使用できます。例えば、

    public class Main {
        //メソッド定義
        public static int getIntegerSum (int i, int j) {
            return i + j;
        }
        // メソッド定義
        public static int multiplyInteger (int x, int y) {
            return x * y;
        }
        public static void main(String[] args) {
            //メソッドを呼び出します
            System.out.println("10 + 20 = " + getIntegerSum(10, 20));
            System.out.println("20 x 40 = " + multiplyInteger(20, 40));
        }
    }

    出力

    10 + 20 = 30
    20 x 40 = 800

    注意:実際の引数と形式引数のデータ型は一致する必要があります。つまり、最初の実際の引数のデータ型は最初の形式引数のデータ型と一致する必要があります。同様に、第二の実際の引数の型は第二の形式引数の型と一致する必要があります。

    方法の使用の利点は何ですか?

    1の主な利点はコードの再利用性。一度方法を書けば、何度でも使用できます。必ずしも毎回コード全体を再書きしなくても大丈夫です。それを「一度書いたら、何度でも再利用できます。。例えば、

    public class Main {
        //メソッド定義
        private static int getSquare(int x){
            return x * x;
        }
        public static void main(String[] args) {
            for (int i = 1; i <= 5; i++) {
                //メソッド呼び出し
                int result = getSquare(i);
                System.out.println("" + i + " の平方は: " + result);
            }
        }
    }

    出力

    1 の平方は: 1
    2 の平方は: 4
    3 の平方は: 9
    4 の平方は: 16
    5 の平方は: 25

     上記のプログラムでは、getSquare()という名前のメソッドを数字の平方を計算するために作成しました。ここでは、同じメソッドを使用して、以下の数の平方を計算します。6の数の平方

     したがって、私たちは同じメソッドを繰り返し使用します

    メソッド2コードを読みやすくなりますデバッグがより簡単になります。例えば、getSquare()メソッドは非常に読みやすいため、このメソッドが数字の平方を計算すると知ることができます。