Java数组

       在Java学习中,老师经常对我们说要理解和掌握变量在内存空间中的分配情况.的确,这个很难理解和举一反三.

        对于一个Person类声明如下三个成员变量:

public class Person {
 
      private String name;
 
      private int age;
 
      private char gender;
}

    对于另外一个TestMain类如下:

public class TestMain {
      public static void main(String[] args) {

                  Scanner scan = new Scanner(System.in);
                  System.out.println("请确定你一共要记录多少个人的信息?");
                  int len = scan.nextInt();


                  Person[ ] allPersons ;               //声明一个引用类型的数组,但是还没有对象

                   allPersons = new Person[len];     //声明一个长度为len这么长得数组,由于是   Person引用类型的,故也没有对象,仅仅是在内存中声明了len这么多个 Person类型的引                                                                             用空间,需要初始化


                  for(int i = 0; i < len; i++){


                          allPersons[i] = new Person();      //由于前面的len这么多个也是引用,因此每次使用时应该都要new一个对象(因为只有对象才能调用方法),这时才在堆内存空间中分                                                                                      配三个位置来装name,age和gender这三个变量


                          System.out.println("请输入第" + (i + 1) + "个人的名字:");
                          allPersons[i].setName( scan.next());
                          System.out.println("请输入第" + (i + 1) + "个人的年龄:");
                          allPersons[i].setAge(scan.nextInt());

                  }

    }
}

比方说是 Person[ ] allPersons =new Person[len];     用如下图来表示内存空间的分配情况:

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值