黑马程序员技术交流社区

标题: 哪位大神帮忙写下过程 怎么就打印这个结果呢 [打印本页]

作者: yangchao313    时间: 2013-8-7 20:06
标题: 哪位大神帮忙写下过程 怎么就打印这个结果呢
本帖最后由 yangchao313 于 2013-8-7 20:57 编辑

public class Test {
   public static void leftshift(int i, int j) {
    i+=j;
   }
   public static void main(String args[]) {
      int i = 4, j = 2;
      leftshift(i, j);
      System.out.println(i);
   }
}


打印结果是4,为什么呢 ?帮忙解释一下


作者: 肥猫    时间: 2013-8-7 20:52
大哥,你调用的方法没有返回值啊,方法执行完了直接出栈了,那么你输出语句就自动找到你上面定义的I=4输出.
作者: yangchao313    时间: 2013-8-7 20:56
肥猫 发表于 2013-8-7 20:52
大哥,你调用的方法没有返回值啊,方法执行完了直接出栈了,那么你输出语句就自动找到你上面定义的I=4输出. ...

哦 谢谢了  
作者: 封号了...    时间: 2013-8-8 15:18
leftshift(int i, int j) 没返回值,主函数掉不调用一个效果,最后获取的还是主函数里的初始值!
作者: sergio    时间: 2013-8-8 17:52
{:soso_e123:}一个值类型也就是i = 4 ,j = 2这样的。leftshift(i, j)这个是引用类型的,两个不牵扯。i 的值不会改变还是4




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2