Java学习:九.对象的创建和使用---内存图(2)

先来运行下面的程序:

public class Address {
    String city;
    String street;
    /**邮编*/
    String zipcode;
}

public class User {
    int id;
    String username;
    Address addr;
}

public class Test {
    public static void main(String[] args) {
    	/**家庭地址对象*/
    	Address a = new Address();
    	a.city = "北京";
    	a.street = "大兴区";
    	a.zipcode = "121221";
    	/**用户对象*/
    	User u = new User();
    	System.out.println(u.id);
    	System.out.println(u.username);
    	System.out.println(u.addr);
    	
    	u.id = 11111;
    	u.username = "zhangsan";
    	u.addr = a;
    	
    	System.out.println("----------1----------");
    	System.out.println(u.username);
    	
    	System.out.println("----------2----------");
    	System.out.println(u.username + "的城市是" + u.addr.city);
    	
    	System.out.println("----------3----------");
    	Address temp = u.addr; 
    	System.out.println(u.username + "的城市是" + temp.city);
    }
}

运行结果:
在这里插入图片描述
分析:
(1)
在这里插入图片描述

创建了一个Address类型的对象。因为Address类型都是String,所以默认值都为null,并且把引用赋给
变量a。

(2)
在这里插入图片描述
给新创建的对象赋值。

(3)

在这里插入图片描述
又创建一个新的对象,但类型为User,输出结果,并且赋初值后再一次输出结果。如程序结果1。结合图
注意程序

 u.addr = a;

该程序中的a是对Address类型的一个对象的引用,而addr是Address类型的,相当于将Address类型的一个对象的地址赋值给u.addr,类似于u.addr = x0123(当然这个地址只是我个人为了方便讲述编的)。大家如果不明白,可以比较上面程序的2,3段,或者可以回想一下学过的程序 int i = 5。原理类似的。
so easy!

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值