//定义一个用户类public class User
{//属性【以下都是成员变量之实例变量】//用户编号//int是一种【基本数据】类型:整数型//no是一个实例变量int no;//用户名//String是一种引用数据类型:代表字符串//name是一个实例变量//name是一个引用String name;//家庭住址//Address是一种引用数据类型:代表家庭住址//addr是一个实例变量//addr是一个引用Address addr;}
//定义一个家庭住址类public class Address
{//属性【成员变量之实例变量】//城市//String是一种引用数据类型,city是一个变量名,属于实例变量//city是一个引用:保存内存地址的一个变量,该变量保存内存地址指向了堆内存中的对象String city;//街道String street;//邮编String zipcode;}
//测试类
public class OOTest02
{public static void main(String[] args){//创建User对象//u是局部变量//u是一个引用//u保存内存地址指向堆内存的User对象User u=new User();//输出User对象内部实例变量的值System.out.println(u.no);//0System.out.println(u.name);//nullSystem.out.pritnln(u.addr); //null//修改User对象内部实例的值u.no=110;//"jack"是一个java对象,属于String对象,在堆内存中会自动new实例化出来u.name="jack"; //Address是我们刚刚定义的一个类,如果要使用Address类里面的变量,就需要实例化Address类对象u.addr=new Address();//重点:在main方法中目前只能看到一个引用"u"//一切都只能通过引用u来进行访问对象u.addr.city="世界村";//赋值u.addr.street="北京路";System.out.println(u.name+"居住城市:"+u.addr.city);System.out.pritnln(u.name+"居住街道:"+u.addr.street);//结论:引用可以是局部变量,也可以是成员变量【实例变量】}
}