你的change()方法是有返回类型的int change()也是带参数的int change(int x)同时使用了静态修饰符static int change(int x),所以当你通过在本类中调用change(x)的时候事实上是执行了change()方法里的代码块,你的public static int change(int x);变成了public static int change(5),x = 3相当于把3的地址 指向 change里的参数x,然后通过int的方式返回给System.out.println();