①概念
對象是類的一個實例,在Java中用new關鍵字創建對象。
②創建
聲明對象:聲明對象的參考名稱(Reference Name)和類型 Clothes c
實例化對象:實例化即new一個對象,創建一個新的內存空間實例化。new Clothes()
初始化對象:在new對象的同時,會調用構造方法來初始化對象。
綁定/參考(Refer):將名稱綁定至新建的對象空間上,用“=”指定。即Clothes c=new Clothes();
③訪問
通過已創建的對象來訪問成員變量和成員方法。
"." 是操作符。用 對象名.數據成員的格式指定值,比如c.color="red"; 也可以操作方法。
④this關鍵字與對象
this關鍵字在類定義中表示的是類實例即對象本身
1.表示對當前對象的引用
返回這個類型的對象
public class A{
public A getA(){
return this;//表示獲取當前實例本身
}
}
2.表示對象的成員變量,用this.name=name把參數賦值傳給成員變量。
public class A{
private int a = 0;//位置1
public A setA(int a){
this.a = a;// this.a表示 位置1即成員變量 的a,賦值=號右側的表示參數a
}
}
3.在構造函數中用this調用另一個已定義滿足指定參數類型的構造器。
public class A{
public A(int a){
}
public A(){
this(1);//這裏調用自身的構造函數public A(int a){
}
}
④對象相等性
區分一下=和==的不同。(實際上底層內存沒有不同)
對於基本類型,=是值複製;==是變量值比較大小。
對於參考類型的對象,=是指定對象名稱綁定某個對象;==是比較兩個參考名稱是否參考同一個對象,但如果一邊是運算式則比較值
而判斷對象的值是否相同,一般用equals()方法,equals()方法底層代碼跟==一致,但一般都會被對象重寫用來比較對象。
簡單理解上述概念。新建一個對象即新建了一個內存空間,並起一個名字進行綁定,a=c即把a名字的內存空間也給c名字綁定,即a和c共享同一個空間同一個對象,用==比較則是相等。