黑马程序员技术交流社区

标题: 我是菜鸟 求高手详解这个代码的的结果是怎么得到的 [打印本页]

作者: 乐凡    时间: 2012-8-13 22:20
标题: 我是菜鸟 求高手详解这个代码的的结果是怎么得到的
package cn.itcast;

public class TestDemo
{
        public static void main(String[] args)
        {
                int[] a=new int[1];
                modify(a);
                System.out.println(a[0]);
        }
        public static void modify(int[] a)
        {
                a[0]++;
        }
}
作者: 杨彪    时间: 2012-8-13 22:28
首先你把这个看懂就ok
成员变量和局部变量的区别
        (1)作用域
        成员变量:针对整个类都有效。
        局部变量:在某个范围内有效。(一般指的就是方法,语句体内)
        (2)存储位置
                成员变量:随着对象的创建而存在,存储在堆内存中。随着对象的消失而消失。
                局部变量:在方法被调用,或者语句被执行的时候存在,存储在栈内存中。
                                  当方法调用完,或者语句结束后,就自动释放。
        (3)初始值
                成员变量:都有默认初始值。
                局部变量:没有默认初始值,使用前,必须赋值。
作者: 郑正华    时间: 2012-8-13 22:35
本帖最后由 郑正华 于 2012-8-13 22:40 编辑

public class TestDemo
{
              public static void main(String[] args)
             {
                            int[] a=new int[1];   ←创建了一个长度为1的int类型数组对象a;
                            modify(a);       ←调用modify方法。并且把数组a作为参数传入;
                            System.out.println(a[0]);     ←打印a[0]的值;
              }
               public static void modify(int[] a)   ← 定义一个静态方法,这样main主函数才能调用它,这个方法接收的参数是一个int类型的数组,
             {
                               a[0]++;   
             }
}

打印结果是1,对象a这个数组里面只有一个元素,就是a[0],modify方法对a[0]元素进行了自增,所以调用完modify方法后a[0]的值就成了1,
作者: 黄珊珊    时间: 2012-8-13 23:31
public class TestDemo
{
        public static void main(String[] args) //主函数,程序从这里开始执行;
         {
                int[] a=new int[1]; //创建了一个名为a的int类型的数组,数组长度为1,
                modify(a); //将a作为参数传入modify中,调用函数modify的方法;
                System.out.println(a[0]); //输出语句:打印0角标元素的值;
        }
         public static void modify(int[] a) //定义了一个modify方法,该方法传入的是int类型的数组;
         {
                a[0]++;    //自增语句;数组默认初始化为0,该语句自增后结果为1;
         }
}

作者: 黎健东    时间: 2012-8-13 23:33
  1. public class TestDemo {
  2.         public static void main(String[] args) {

  3.                 //1.1这里定义了一个int数组 a,并指定数组空间大小为1
  4.                 int[] a = new int[1];
  5.                 //1.2调用modify方法,把上面的数组a传递过去
  6.                 modify(a);
  7.                 //1.4
  8.                 //取出数组中的第1个元素,由之前调用方法中可以知道此时这个元素的值为1,并将它打印
  9.                 //结果输出1
  10.                 System.out.println(a[0]);
  11.         }

  12.         //接受传过来的数组a
  13.         public static void modify(int[] a) {
  14.                 //1.3
  15.                 //a[0]就是指数组中的第1个元素
  16.                 //从数组中取第1个元素,因为之前定义数组的时候,并没有给数组赋值
  17.                 //所以取出来的值默认是0
  18.                 //然后a[0]++,就是0++,为1
  19.                 //然后数组中的这个值就改变成1了
  20.                 a[0]++;
  21.         }
  22. }
复制代码
详细的过程都写在上面的代码里边了,楼主仔细看一下就明白了




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