使用简单数据类型作不到的,只能把i封装到类的里面,然后把类的引用传给方法,在方法中改变i,则退出方法后i是新的

解决方案 »

  1.   

    你应该这样子用:
    void int fun1(int p){
    p = 2;
    return p;
    }
    然后调用的时候这样:
    i = fun1(i);
    System.out.println(i.toString());
      

  2.   

    上面应该是
    int fun1(int p){
    p = 2;
    return p;
    }
    然后调用的时候这样:
    i = fun1(i);
    System.out.println(i.toString());用void定义函数的话无法返回值
      

  3.   

    你试试这个啊:
    void main()
    {
      Integer i=new Integer(0);
      fun1(i);
      System.out.print(i.toString());
      
    }
    void fun1(Integer p)
    {
       p=new Integer(2);
    }
    java中所有的对象都是引用传递的啊,类似于指针。
      

  4.   

    你为什么要这样做呢?(通过fun1修改参数的方法改变值,而不是用返回值)
      

  5.   

    回复人: micker(希望下一代别再贫穷) ( ) 信誉:100 
    你这样是不行的,对于Integer这样的类是没有办法的,只能自己包装一个类来实现。
      

  6.   

    考,java还不如vb 起码定义函数时可以用 byval 或 byref.
      

  7.   

    对了java的函数能不能为参数定义缺省值?
    象如下c++的一段程序,如果参数有缺省值调用时是不必把参数写全的。
    main()
    {
      int v= fun1(1);
      ...
    }
    int  fun1(int i,int j=2)
    {
      return i+j;
    }