【初心者】Java質問・相談スレッド103【大歓迎】at TECH【初心者】Java質問・相談スレッド103【大歓迎】 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト636:デフォルトの名無しさん 07/07/16 01:40:27 Eclipseなら右クリックで変数の宣言に飛ぶとかメソッドの定義に飛ぶとかできる 637:デフォルトの名無しさん 07/07/16 01:44:16 そうなんですか?! 明日、日付明けて今日ですが、会社行って試してみようと思います。 12時間後ぐらいに撃沈してるかもしれませんが、その時はまたご教授願いします…。 素人の質問に回答いただきありがとうございました! 638:デフォルトの名無しさん 07/07/16 05:08:20 C++からJavaに引っ越してきたばかりの初心者です。 class A { private int data; //外部からは見えない private setter(int data) { this.data = data; } //外部からは使えない public int getter() { return data; } } というクラスがあったとき、data は int 型なので、この値が外部からは 絶対に変更されないことは保証されていると思います(C++と同じ)。 しかし、これが基本型の int ではなく、一般的なクラスだった場合、 例えば StringBuffer だったりしたら、外部からでも StringBuffer str = getter(); str.append("hoge"); みたいにして操作することは可能です(ここはC++と違う)。 これを防ぐために思いつくのは、getter() で data そのものではなく data のコピーを返すことですが、 public String getter() { return data.toString(); } 1. これは標準的な方法ですか? 2. ざっと見たところ、StringBuffer と違って String には インスタンスそのものが保持している値を直接書き換える 関数はないようですが、int と同じように扱っても安全ですか? 3. StringBuffer.clone() って使えるのが自然なような気がするんですが、 なんで使えないんですか? 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch