C ++では、次のように書くことができます
Int getX() const { return x; }
finalを使用してJavaに同等のメソッド構造はありますか?
const/final 変更された引数をメソッドに渡すのはどうですか?
このC++コードのように
void printX(const int x);
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 では、このようにメソッドをマークする方法はありません。