• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:final修飾子)

Javaのfinal修飾子とは?

このQ&Aのポイント
  • Javaのfinal修飾子は、メソッドのオーバーライドや変数の値の変更、クラスの継承を制限します。
  • final修飾子を引数につけた場合、変更が可能な参照型の場合は参照先の値を変更できます。
  • 交換関数であるswap関数について、基本型の場合は値のコピーが行われ、参照型の場合はポインタの値の交換が行われます。

質問者が選んだベストアンサー

  • ベストアンサー
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

Cをある程度ご存知なようなので. 参照は、ポインタをイメージすると、理解の助けになるでしょう。 > inal修飾子はC言語でいうところのchar * const c;でしょうか? そうです。 > あと,swap関数についても質問があります あなたのコードと同等のCのコードは、次のようになります。    static void swap(Integer * i, Integer * j) {      Integer * temp;      temp = i;      i = j;      j = temp;    }    static void swap(Foo * f1, Foo * f2) {      int temp;      temp = f1->i;      f1->i = f2->i;      f2->i = temp;    }

その他の回答 (1)

回答No.2

>Integerクラスが交換できない理由がわかりません. Integerクラスは immutable なので、値の変更はできません。 また swapは参照を別の変数に渡すだけで、また、Integer同士の代入は参照の 代入なので、結局、元のi, j が持つ参照は何も変わりません。

関連するQ&A