CarrotFish 发表于 2019-3-2 19:34:09

求助:如何改变函数参数获取的变量的值

public class a{
    public void myAdd(int x){
      x=x+1;
    }
}

class MyMain{
    int i;
    public static void main(String[] args){
      i=1;
      myAdd(i);
      System.out.println(i);
    }
}
我想利用MyAdd这个函数实现变量自增一,但这种方法无法实现,各位大神有没有什么高见{:9_241:}

暗pluto 发表于 2019-3-2 20:33:15

你这个代码漏洞百出吧?
基本类型作为参数传递时,是传递值的拷贝,无论你怎么改变这个拷贝,原值是不会改变的

暗pluto 发表于 2019-3-2 20:40:35

你可以去搜一搜java中的参数值传递和引用传递,java基本数据类型都是按参数值传递的

暗pluto 发表于 2019-3-2 20:43:31

还有,你在MyMain类中定义了一个局部变量i,却在main方法中使用,这是不正确的,因为静态方法是不能使用非静态变量的,而且你都没有创建对象,是怎么使用a类中的myadd方法的?这一点也是错的,你可以去查一下,java中关于静态static的定义和使用

CarrotFish 发表于 2019-3-2 20:47:32

暗pluto 发表于 2019-3-2 20:40
你可以去搜一搜java中的参数值传递和引用传递,java基本数据类型都是按参数值传递的

好的,非常感谢

暗pluto 发表于 2019-3-2 20:53:02

CarrotFish 发表于 2019-3-2 20:47
好的,非常感谢

不客气

CarrotFish 发表于 2019-3-2 21:01:40


class MyMain{
    public static void myAdd(int[] x){
      x=x+1;
    }
    public static void main(String[] args){
      int [] i=new int{1, 0}
      myAdd(i);
      System.out.println(i);
    }
}
修改后的
页: [1]
查看完整版本: 求助:如何改变函数参数获取的变量的值