获取对象';为每个循环将属性转换为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();  
    }
}