一个对象 class a = new class()
除了这个a=null
还有别的间接方法能使他=null吗?
例如 定一个 String str= new String("abc");把该对象传给一个函数,形参为(String s)
该函数功能是:
从键盘输入一个字符,如果字符不是空格,则str=输入的字符,否则令str=null
不可以直接调用str=null,

解决方案 »

  1.   

    我做过这样的实验
    public void makeNull(String tn){//测试函数
    tn = null;
    System.out.println("make null");
    }
    String s = “abc”
    makeNull(s);
    System.out.Println(s);
    结果输出还是abc
      

  2.   

    public String makeNull(String tn){//测试函数
    tn = null;
    System.out.println("make null");
    return tn;
    }
    String s = “abc”
    makeNull(s);
    System.out.Println(s);
      

  3.   

    刚做了实验这样也不行 s 没有变还是 abc
      

  4.   

    public String makeNull(String tn){//测试函数
    tn = null;
    System.out.println("make null");
    return tn;
    }
    String s = “abc”System.out.Println(makeNull(s));
      

  5.   

    public String makeNull(String tn){//测试函数
    tn = null;
    System.out.println("make null");
    return tn;
    }
    String s = “abc”
    s=makeNull(s);
    System.out.Println(s);
      

  6.   

    你没有明确的 赋值 null , 就肯定保持上次的值.
    如果要 调用的方法修改 String 是做不到的,只能用 char[] 之类的,但这不是你要的那个。
      

  7.   

    楼主应该回去看看"think in java"中的"传递和返回对象"的章节了,我举个例子给你,自己回去看看
    public Class Sample{
    String name = null;
    public void setName(String name){ this.name = name }
    public String getName(){ return this.name }
    }
    public Class Test{
    Sample instanceA = null;
    Sample instanceB = null;
    public void tryModifySample(){
    instanceA = new Sample();
    instanceA.setName("csdn");
    instanceB = instanceA;
    instanceA.setName("ndsc");
    System.out.println(instanceB.getName());
    }
    }
    你说输出的是csdn呢?还是ndsc呢?
      

  8.   

    ^_^,同意楼上的,我感觉java版的所有基础问题都可以在thinking in java里找到答案!