我现在对于方法调用有一个疑问,比如我
Staff s=new Staff();
s.setName("猪八戒");
s.setUsername("1");
a(s);
String ages =s.getAge();
//我的a方法
pubilc String a (Staff s){
String b="2";
s.setAge("18");
return b;
}
这个方法调用它的意义在哪里呢,目前我的理解是把staff的age在调用方法的时候进行了增加,但是我不明白我没有返回s为什么我调用a方法后ages能取到18
java里类对象是引用传递,所以s.setAge("18")实现了a(s)调用时,s类对象中年龄值的修改了。
String ages =s.getAge();
ages是从这里取的值,又没有从a的返回值取值,跟调用不调用a有什么关系呢
你这个a方法里面的参数是个对象,传递进去的是个地址,
在方法里面修改了值,方法外面的对象的值也随之发生改变。
你的方法的返回值是b,但是你并没有去接受这个返回值。
此时。s。getage = 18;
如果你用String ages = a(s);
这样接收a方法返回的参数b,
打印ages的值会是2.
调用方法和你有没有接收返回值有啥关系呢?你既然调用了a(s),也就执行了a方法里的语句,只不过你没有接收他的返回值而已,并不影响里面代码的运行。