3

私はプログラミングにかなり慣れていないので、値を返すことが正確に何を意味するのかについて混乱しています。最初は、返された値を出力する意味だと思っていましたが、自分のコードで試してみると、何も起こりませんでした。

class Class1 {

    public static int x = 3;

    public static int getX(){
        return x;
    }

    public static void main(String[] args){
        Class1.getX();
    }
}

これは私が言いたいことの一例です。プログラムを実行すると、何も表示されません。これを考えると、値を返すことは何か別のことを意味すると私は信じるようになりました。しかし、何?

4

3 に答える 3

7

簡単に言えば、メソッドの呼び出し元に値を返すということです...

したがって、あなたの例では、メソッドgetXは呼び出し元に値を返し、x呼び出し元にアクセスできるようにします。

class Class1{

    static int x = 3;

    public static int getX(){
        return x;
    }

    public static void main(String args[]){
        int myX = Class1.getX(); // return the value to the caller...
        System.out.println(myX); // print the result to the console...
    }
}
于 2013-05-01T03:33:14.063 に答える
2

値を返すことは、メソッドが互いに対話する方法です

public void method1() {
    int value = 5 + method2(5);
    System.out.println(value);
}

public int method2(int param) {
    return param + 5;
}

これにより、15 が出力されます (5 は に送信されmethod2、5 が追加され、結果が に返され、method15 が追加されて結果が出力されます)。

Java は値のコピーを返します。この場合、値をコピーして10に返しmethod1ます。method2を返す場合Object、オブジェクトの参照のコピーを返します。言語によってメソッドの戻り値のセマンティクスが異なるため、言語を切り替えるときは注意が必要です。Java は、メソッドに渡されたパラメータの値もコピーします。この場合method1、値 5 をコピーして に渡しますmethod2

public void method1() {
    int value = 5;
    method2(value);
}

public void method2(int param) {
    param = param + 5;
}

のコピーのみがパラメーターとして送信されたため、 valueinは(実行後も 5 に等しい) のmethod1影響を受けません。method2valuemethod2value

于 2013-05-01T03:36:34.167 に答える
0

整数を返すメソッドを呼び出しているだけですが、それを使用/印刷することはありません。コードで使用して、クラスで設定したとおりに目的の値が得られたかどうかを確認してください。

于 2013-05-01T04:38:49.223 に答える