public class OOTest03{ public static void main(String[] args){ //u是引用 //u是局部变量 User u = new User(); //a是引用 //a是局部变量 Address a = new Address(); u.addr = a; System.out.println(u.addr.city);//null a.city = "天津"; System.out.println(u.addr.city);//"天津" } } //用户类 class User{ //属性 //用户编号 //int是一种基本数据类型:整数型 //no是一个实例变量 int no; //用户名 //String是一种引用数据类型:代表字符串 //name是一个实例变量 //name是一个引用 String name; //家庭住址 //Address是一种引用数据类型:代表家庭住址 //addr是一个实例变量 //addr是一个引用 Address addr; } //家庭住址类 class Address{ //城市 String city; //街道 String street; //邮编 String zipcode; }
上述代码内存分析图:
public class OOTest04{ public static void main(String[] args){ //创建一个丈夫对象 Husband ZhangSan = new Husband(); ZhangSan.name = "张三"; //创建一个妻子对象 Wife XiaoHong = new Wife(); XiaoHong.name = "小红"; //结婚【可以通过丈夫找到妻子,也可以通过妻子找到丈夫】 ZhangSan.w = XiaoHong; XiaoHong.h = ZhangSan; System.out.println(ZhangSan.name + "的妻子名字叫 = " + XiaoHong.name); System.out.println(ZhangSan.name + "的妻子名字叫 = " + ZhangSan.w.name); } } //丈夫类 class Husband{ //丈夫名字 String name; //丈夫对象当中含有妻子引用 Wife w; } //妻子类 class Wife{ //妻子名 String name; //妻子对象当中含有丈夫引用 Husband h; }
上述代码内存分析图: