Java方法的形参实参与值传递引用传递

方法的形参、实参

public static void main(String[] args) {
int sum1 = sum(20, 30);// 调用方法时,括号内为实参
System.out.println(sum1);

int a = 10;
int b = 20;
int sum2 = sum(a, b);// a b 也是是实参
System.out.println(sum2);

double avg = avg(a,b);
System.out.println(avg);

}

private static double avg(int a, int b) {// a b 为形参
int sum = sum(a, b);// 只要是调用方法,括号内就是实参!a b 是实参
return sum / 2.0;
}

private static int sum(int a, int b) {// a b 为形参
return a + b;
}

值传递、引用(地址)传递

public class MethodParamTest {
    public static void main(String[] args) {
        // 值传递
        int a = 10;
        change(a);
        System.out.println(a);// 10

        // 引用传递
        B b = new B();
        change(b);
        System.out.println(b.num);// 11
    }

    private static void change(int a) {
        ++a;
    }

    public static void change(B b){
        ++ b.num;
    }
}

class B{
    public int num = 10;
}
  • 值传递分析

Java方法的形参实参与值传递引用传递_第1张图片

  • 引用传递分析

Java方法的形参实参与值传递引用传递_第2张图片

你可能感兴趣的:(java基础,java,值传递,引用传递)