私はJavaにかなり慣れていません。最近、Javaが値渡しであるという資料を読んでいました。自分でテストを実行する前に、この質問とこのブログを読みました。
さて、私の読書とクイックテストに基づいて、オブジェクト参照内に含まれる変数を変更する方法が2つあることがわかりました。次のアプローチのどれがより良いまたはより安全なアプローチですか?どちらのアプローチにも明らかな問題はありますか?
これらは両方とも「iArr[0]=45」を出力します。
アプローチ1:
public static void main(String args[] ){
int[] iArr = {1};
method(iArr) ;
System.out.println( "iArr[0] = " + iArr [0] ) ;
}
public static void method(int[] n ) {
n [0] = 45 ;
}
アプローチ2:
public static void main(String args[] )
{
int[] iArr = {1};
iArr = method(iArr) ;
System.out.println( "iArr[0] = " + iArr [0] ) ;
}
public static int[] method(int[] n ) {
n [0] = 45 ;
return n;
}