質問: javaでは基本型の参照渡しは無理ですか? 先日のjavaの授業で値渡しと参照渡しについて学びました。 授業では オブジェクトは参照渡しになり 基本型は値渡しにされる(参照渡しは不可能) と教えられました。 オブジェクトを値渡しにできないのはなんとなく納得できたのですが 基本型を参照渡しにできないのが納得できません。 そこで 1.基本型を参照渡しにすることはできないのか? 2.基本型を参照渡しすることができないのはなぜか? 3.オブジェクトを値渡しすることができないのはなぜか? の3点を教えて頂きたいです。 よろしくお願いします。
回答: no1の方がおっしゃる通り、javaでは全て値渡しです。 オブジェクトは参照データ型といわれる型になります。 参照渡し、と思っているのは【参照を示す場所を値渡ししている】になります。 わかりやすく説明されているサイトをご紹介します。 という前提で疑問に私なりの回答をしてみます。 1.基本型を参照渡しにすることはできないのか? 基本型を参照データ型にラップし、オブジェクトとして扱うことはできます。例をあげるとbooleanではbooleanオブジェクトに該当します。 2.基本型を参照渡しすることができないのはなぜか? 1.のような方法で【natsu0611さんが思われているような参照渡し】は可能ではないでしょうか。 3.オブジェクトを値渡しすることができないのはなぜか? おそらくではありますが、メモリ管理の問題ではないでしょうか。 回答が合っているかどうかはちょっと自信は無いですが・・・。 参考url:http://java.269ch.jp/archives/2005/07/post_6.html