你在类Ca里定义了成员变量 Cat[] c=null;然后在getretu()方法里返回c肯定是空的。首先在Ca(int n)的构造方法里把Cat[] 数组创建出来,然后加上这句this.c=c;创建数组有两种方法,第一就是int[] a={1,23,3};第二种就是int[] a=new int[5];但是你先把数组赋值空那肯定不对的。下面是我写的代码你可以参考,注释也写了。- package com.test;
- public class IndexTest {
- public static void main(String[] args) {
- Ca ch = new Ca(5);
- System.out.println(ch.getretu()[0].getNum());
- /*如果初始化数组的时候例如
- * int[] a=null;那么数组中的值是空;
- */
- //错误代码,这段代码会报空指针
- /*int[] a=null;
- a[0]=0;
- a[1]=1;
- for (int i = 0; i < a.length; i++) {
- System.out.println(a[i]);
- }
- */
-
- }
- }
- class Cat {
- int num;
- Cat(int num) {
- this.num = num;
- }
- public int getNum() {
- return num;
- }
- }
- class Ca {
- int n;
- Cat[] c;
- Ca(int n) {
- this.n = n;
- Cat[] c =new Cat[n];
- this.c=c;
- for (int i = 0; i < n; i++) {
- c[i] = new Cat(i + 1);
- }
- }
-
-
-
-
- public Cat[] getretu() {
- return c;
- }
- }
复制代码 |