【Java】11.面向對象之對象(初始化、綁定、訪問、this、對象相等性)

①概念

對象是類的一個實例,在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共享同一個空間同一個對象,用==比較則是相等。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章