获取对象';为每个循环将属性转换为java
为什么要打印每个只使用基本体对象的属性,如果要打印复杂对象的属性不工作为什么?您需要初始化获取对象';为每个循环将属性转换为java,java,Java,为什么要打印每个只使用基本体对象的属性,如果要打印复杂对象的属性不工作为什么?您需要初始化Rome[0]对象。 它将看起来像: public class Person { String name; int age; public Person(String name, int age) { this.name = name; this.age= age; } Person Rome[] = new Person[10];
Rome[0]
对象。
它将看起来像:
public class Person {
String name;
int age;
public Person(String name, int age) {
this.name = name;
this.age= age;
}
Person Rome[] = new Person[10];
public void initializes {
Rome[0]= new Person ("Antonio",20);
Rome[1]= new Person ("Marco",11);
//...
Rome[9]= new Person("Giuseppe",27);
}
public void printName(){
for(Person x : Rome){
System.out.println(x.name);
}
}
//TEST CLASS
public static void main (String args[]){
Person obj = new Person();
obj.initializes();
obj.printName(); // Exception in thread "main" java.lang.NullPointerException
}
}
如果在没有对象类的情况下初始化对象,代码会更好。例如,在测试类中:
public void initializes {
Rome[0]= new Person ("name",00);
Rome[1]= new Person ("Antonio",20);
//...
}
结果是:
文件名Test.java
//这就是代码。它是原型,我没有编译它,但它是一个例子
Person[] Romeo = new Person[] {
new Person(name, 00),
//...
}
公共类人物{
字符串名;
智力年龄;
公众人物(字符串名称,整数年龄){
this.name=名称;
这个。年龄=年龄;
}
public void printName(){
System.out.println(名称);
}
}
//测试班
公开课考试{
公共静态void main(字符串参数[]){
人[]罗密欧=新人[]{
新人(“姓名”,00),
//...
}
for(int i=0;i<10;i++)//或其他循环样式
罗密欧[i].打印名();
}
}
罗马[0]
为null
。您需要初始化它。否,因为在测试中我调用obj.initializes();数组Rome正常,有所有对象Person…您是否尝试重新运行代码,现在您已将其编辑为初始化Rome[0]
?如果仍然有NPE,则发布堆栈跟踪。
public class Person {
String name;
int age;
public Person(String name, int age) {
this.name = name;
this.age= age;
}
public void printName(){
System.out.println(name);
}
}
//Test class
public class Test {
public static void main (String args[]){
Person[] Romeo = new Person[] {
new Person("name", 00),
//...
}
for(int i = 0; i < 10; i++)//or another loop style
Romeo[i].printName();
}
}