A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 秋天-10 中级黑马   /  2015-4-28 22:15  /  605 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. 写出结果。
  2. public class Test      
  3. {
  4.         public static void leftshift(int i, int j)
  5.         {
  6.                    i+=j;
  7.         }
  8.         public static void main(String args[])
  9.         {
  10.                 int i = 4, j = 2;
  11.                 leftshift(i, j);
  12.                 System.out.println(i);
  13.         }
  14. }
复制代码

7 个回复

倒序浏览
应该是 6吧。
回复 使用道具 举报
结果打印6    i+=j 就是把两个数相加然后赋值给第一个
回复 使用道具 举报
结果是4,只有当引用类型当形参的时候传递是地址,所以操作的是同一个内存空间,基础变量传递是值,所以不会影响原来的值
回复 使用道具 举报
4因为 里面leftshift里的i,j只是形参,不会对main里面的i,j实参造成任何影响
回复 使用道具 举报
/**变量的作用域实例
* 通过方法调用实现
*廖开德注释
*/

public class Test9      
{
        public static void leftshift(int i, int j)
        { //此处的i,j 是局部变量  只在leftshift()中有效,
                //他的值的变化不会引起其他地方同名变量的变化
                   i+=j;
        }
        public static void main(String args[])
        {
                //此处i,j是局部变量只在main()方法中有效
                int i = 4, j = 2;
                //此处传递的是i,j的值,不是他的引用
                leftshift(i, j);
                //此处输出的是main()方法中的i的值,他没有被leifshift()方法改变
                System.out.println(i);
        }
}
回复 使用道具 举报
神话归来99 发表于 2015-4-28 22:31
/**变量的作用域实例
* 通过方法调用实现
*廖开德注释

输出结果是4
回复 使用道具 举报
gzp123 中级黑马 2015-4-28 22:37:44
8#
这道题的正确答案是:4
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马