//定義一個用戶類
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);//0
System.out.println(u.name);//null
System.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);
//結論:引用可以是局部變量,也可以是成員變量【實例變量】
}
}