在main中止只能通过u访问到User类如果想要访问引用addr对应的对象需要在访问前创建Address对象
对于String对象我们可以不用new便可以使用,这是官方规定的,而其他类型的对象只有在new后我们才可以使用;
只有在new后JVM才会给这个类型的对象在堆内存中分配其内存空间;
对于某种类型的对象我们可以为其new很多次每次,为其分配很多的堆内存空间。
Address addr = new addr;
这种方式是创建不成功的因为编译器根本就找不到addr因为addr在引用u对应的对象当中只有通过u 我们才能找到addr。
u.addr= new Adress();
这种方式才可以将Adress对象的内存地址给到u中的addr
如果不是给u中的引用addr的话可以直接创建而不用通过u
Adress add = new Adress();
Test类
public class Test {
public static void main(String[] args) {
User u=new User();
System.out.println(u.no);
System.out.println(u.name);
System.out.println(u.addr);
u.no=123456;
u.name="jack";
u.addr= new Adress();
u.addr.city="北京";
u.addr.street="朝阳";
u.addr.zipcode="1213213";
System.out.println(u.no);
System.out.println(u.name);
System.out.println(u.addr.city);
System.out.println(u.addr.street);
System.out.println(u.addr.zipcode);
}
}
User类
public class User {
int no;
String name;
Adress addr;
}
Adress类
public class Adress {
String city;
String street;
String zipcode;
}