为什么内部包含类对象数组的构造函数具有空值

问题描述 投票:1回答:1

目前,我正在学习Java进行学习,但遇到了问题。那是可以预见的。我自己尝试了几件事,但是现在我再也没有解决这个问题的想法了。我想在这里需要帮助来了解Java的具体概念。

这是我的简单代码:

package com.company;

import java.util.Arrays;

public class Verwaltung {

    String vorname, name, geschlecht, geburtsdatum;
    Verwaltung [] verwaltung;



    public Verwaltung(String vorname, String name, String geschlecht, String geburtsdatum) {
        this.vorname = vorname;
        this.name = name;
        this.geschlecht = geschlecht;
        this.geburtsdatum = geburtsdatum;

    }

    public Verwaltung () {
        int i;
        verwaltung = new Verwaltung[] {
                new Verwaltung("Holger", "Fritz", "m", "05.05.1996"),
                new Verwaltung("Holger", "Fritz", "m", "05.05.1996"),
                new Verwaltung("Holger", "Fritz", "m", "05.05.1996"),
                new Verwaltung("Holger", "Fritz", "m", "05.05.1996"),
                new Verwaltung("Holger", "Fritz", "m", "05.05.1996"),
        };
            for (i = 0; i < verwaltung.length;  i++) {
                if (verwaltung[i] != null) {
                    System.out.println(verwaltung[i]);
                }
        }
    }


    @Override
    public String toString() {
        return "Verwaltung{" +
                "vorname='" + vorname + '\'' +
                ", name='" + name + '\'' +
                ", geschlecht='" + geschlecht + '\'' +
                ", geburtsdatum='" + geburtsdatum + '\'' +
                ", verwaltung=" + Arrays.toString(verwaltung) +
                '}';
    }
}

此类在标准方法的主方法中被调用

输出

Verwaltung{vorname='Holger', name='Fritz', geschlecht='m', geburtsdatum='05.05.1996', verwaltung=null}
Verwaltung{vorname='Holger', name='Fritz', geschlecht='m', geburtsdatum='05.05.1996', verwaltung=null}
Verwaltung{vorname='Holger', name='Fritz', geschlecht='m', geburtsdatum='05.05.1996', verwaltung=null}
Verwaltung{vorname='Holger', name='Fritz', geschlecht='m', geburtsdatum='05.05.1996', verwaltung=null}
Verwaltung{vorname='Holger', name='Fritz', geschlecht='m', geburtsdatum='05.05.1996', verwaltung=null}

我的问题现在是:为什么我返回数组“ verwaltung”的null值?

java
1个回答
0
投票

发生这种情况是因为您使用不初始化数组“ verwaltung”的args打印了第一个构造函数的对象。

实例:

 new Verwaltung("Holger", "Fritz", "m", "05.05.1996"),

打印:

System.out.println(verwaltung[i]);

toString方法由printLn使用第一个构造方法的实例对象调用,该方法将打印ur输出。

U不是打印将初始化数组的标准构造函数的实例,而是第一个构造函数的实例。

© www.soinside.com 2019 - 2024. All rights reserved.