- public class PassTest {
- float ptValue;
- public void changeInt(int value) {
- value = 23;
- }
- public void changeStr(String value) {
- value = new String("change");
- }
- public void changeObj(PassTest pt) {
- pt.ptValue = 45.0f;
-
- }
- public static void main(String[] args) {
- String str;
- int val;
- PassTest pt = new PassTest();
- // 测试基本类型参数的传递
- val = 11;
- pt.changeInt(val);
- System.out.println("Int value is:" + val);
- // 测试引用类型(字符串)参数的传递
- str = new String("Hello");
- pt.changeStr(str);
- System.out.println("String value is:" + str);
- // 测试引用类型(对象类型)参数的传递
- pt.ptValue = 77.0f;
- pt.changeObj(pt);
- System.out.println("Obj value is:" + pt.ptValue);
- }
- }
复制代码 此题的结果很让我迷惑 第一 第三个我知道 就是字符串不也和对象一样吗 不也传递的是自己的引用(即地址)为什么对象就能改变原来的值 而字符串却没有呢????
|