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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© abc张强8 中级黑马   /  2014-6-30 11:33  /  1474 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 abc张强8 于 2014-6-30 16:58 编辑

package com.tz.test;
public class Test {
private static  int nums = 0;
public static void main(String[] args) {
  System.out.println("asd");
  nums = 2;testNums(nums);
  System.out.println(nums);//到这里nums怎么又变成2了?
}
public static void testNums(int nums) {
  nums++;
  System.out.println(nums+"qas");//到这里nums是3
}
}

评分

参与人数 1技术分 +2 收起 理由
黑马蔡红微 + 2 鼓励两分

查看全部评分

7 个回复

倒序浏览
  1. public class Demo {
  2.        
  3.         private static  int nums = 0;
  4.         public static void main(String[] args) {
  5.                 //上面操作的都是成员变量,所以你最后打印的结果还是2
  6.                 System.out.println("asd");
  7.                   nums = 2;
  8.                   testNums(nums);//3
  9.                   System.out.println(nums);//2
  10.         }
  11.         public static void testNums(int nums) {//这里的nums是局部变量
  12.                   nums++;
  13.                   System.out.println(nums+"qas");
  14.                 }

  15. }
复制代码
回复 使用道具 举报
回复 使用道具 举报

不客气......:)
回复 使用道具 举报
public class Demo {
        
        private static  int nums=0 ;
        public static void main(String[] args) {
                System.out.println("asd");
                nums = 2;
                testNums();//调用函数使静态变量nums自增1
                System.out.println(nums);//3
        }
       
        public static void testNums() {//这里的()中不用加int nums,int nums是又重新定义的一个局部变量,
                nums++;
                System.out.println(nums+"qas");
                       
                }

}
回复 使用道具 举报
恩啊,我后面运行出来
回复 使用道具 举报
你调用方法testNums传入一个参数,其实传的是nums的一个副本,它本身是没有变化的,你只是在对他的副本进行了操作,而且你testNums里面的nums++,他其实是一个局部变量,你没有发现你在方法参数列表定义了一个局部变量,他和成员字段nums只是名字相同,两个变量之间没有任何关系的,你可以把方法的变量改变一下,这样容易理解、。而主方法里面打印的是成员字段,你给成员字段赋得值是2,打印当然也是2了
回复 使用道具 举报
houyudong 发表于 2014-6-30 16:56
你调用方法testNums传入一个参数,其实传的是nums的一个副本,它本身是没有变化的,你只是在对他的副本进行 ...

对,对,就是这样。主要是参数名跟成员变量名定义的一样了,所以才容易引起误解。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马