目前,我正在学习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值?
发生这种情况是因为您使用不初始化数组“ verwaltung”的args打印了第一个构造函数的对象。
实例:
new Verwaltung("Holger", "Fritz", "m", "05.05.1996"),
打印:
System.out.println(verwaltung[i]);
toString方法由printLn使用第一个构造方法的实例对象调用,该方法将打印ur输出。
U不是打印将初始化数组的标准构造函数的实例,而是第一个构造函数的实例。