wag2765
2010-08-05 19:02 阅读 210
已采纳

静态方法为什么不用修改引用类型变量

  private static void _2010_8_5_b() {
        String str = "abc";//new String("456");
        _2010_8_5_test(str);
        System.out.println(str);

    }

    private static void _2010_8_5_test(String str) {
        System.out.println("before:"+str);
        str = "123";
        System.out.println("after:"+str);
    }

    public static void main(String[] args) {
        // instance._2010_8_5();
        _2010_8_5_b();
    }

想通过方法_2010_8_5_test修改方法_2010_8_5_b() 中变量,但跳出方法_2010_8_5_b() 后,变量str值未变化,这是静态方法的特性吗?那应该怎样才能在静态方法中修改引用类型的变量。谢谢!

 

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

2条回答 默认 最新

  • 已采纳
    CaiHuajiang CaiHuajiang 2010-08-05 19:29

    [code="java"]private static str;

    private static void _2010_8_5_b() {
        str = "abc";//new String("456");
        _2010_8_5_test(str);
        System.out.println(str);
    
    }
    
    private static void _2010_8_5_test(String str) {
        System.out.println("before:"+str);
        str = "123";
        System.out.println("after:"+str);
    }
    
    public static void main(String[] args) {
        // instance._2010_8_5();
        _2010_8_5_b();
    }[/code]
    
    点赞 评论 复制链接分享
  • CaiHuajiang CaiHuajiang 2010-08-05 19:30

    [code="java"]
    private static String str;

    private static void _2010_8_5_b() {
        this.str = "abc";//new String("456");
        _2010_8_5_test(str);
        System.out.println(str);
    
    }
    
    private static void _2010_8_5_test(String str) {
        System.out.println("before:"+str);
        this.str = "123";
        System.out.println("after:"+str);
    }
    
    public static void main(String[] args) {
        // instance._2010_8_5();
        _2010_8_5_b();
    }[/code]
    
    点赞 评论 复制链接分享

相关推荐