这个就是值传递和引用传递的区别,这里run方法里的i的值和run方法里面进行递归调用的时候的i的值没关系,方法里面的值改变不会影响外面的值,给你写了个小例子是引用传递,你看看大概就能明白了,如果还不明白可能要看看毕老师的关于引用类型的内存分配部分的视频了- package demo1;
- public class Demo11 {
- public static void main(String[] args) {
- Person12 p=new Person12();
- run(p);
-
- }
- public static void run(Person12 p){
- System.out.println(p.age);
- if(p.age<3){
- p.age=p.age*2;
- run(p);
- }
- System.out.println(p.age);
- }
- /*
- public static void run(int i){
- System.out.println(i);
- if(i<3){
- run(i*2);
- }
- System.out.println(i);
- }
- */
- }
- class Person12
- {
- int age=1;
- }
复制代码 |