0

C ++では、次のように書くことができます

Int getX() const { return x; }

finalを使用してJavaに同等のメソッド構造はありますか?

const/final 変更された引数をメソッドに渡すのはどうですか?

このC++コードのように

void printX(const int x); 
4

1 に答える 1

2

C++ の例:

void printX(const int x);

メソッド パラメーターで修飾子を使用finalして、メソッド内でパラメーターを変更できないことを示すことができます。

void printX(final int x) {
    System.out.println(x);
    x++; //compiler error since `x` is marked as final
}

finalオブジェクト参照変数に修飾子を使用すると、参照を変更できないことを意味するだけですが、その内部の内容は変更できることに注意してください。

class Foo {
    int x = 0;
}
class Bar {
    changeFoo(final Foo foo) {
        foo.x = foo.x + 1; //allowed even if `foo` is marked as final
        foo = new Foo(); //compiler error...
    }
}

このコードの SJuan76 コメントから

Int getX() const { return x; }

このメソッドが呼び出されたときにクラスの状態が変更されていないことを示します。

Java では、このようにメソッドをマークする方法はありません。

于 2013-06-01T22:41:30.120 に答える