局部变量有三种
第一,是在方法中定义的变量,如你在main方法中定义的a
第二,是在代码块中定义的变量,如在for循环和while循环内定义的变量,
第三,是方法的形参,也叫方法签名,如main方法中的args和你那个方法中的a变量
局部变量的有效范围是方法内部,或者代码块内部,各个方法之间的变量互不干扰.就好像你上面的代码里面
main方法的a和function方法的a是不会影响到对方的,
你在mian方法中运行
function(new Cat());
function(new Dog());
的时候,先有一个对象作为实际参数放到了function方法中,然后被function方法的形参a引用,然后在function中利用a的引用去操作实际的参数对象new Cat();
这个方法执行完了之后,再次执行 function方法,原理也是一样,但是这里方法里面的形参a不是上面那个方法里面的a了.
|