1.對(duì)象的創(chuàng)建
可以在Java語(yǔ)言中使用new操作符調(diào)用構(gòu)造方法創(chuàng)建對(duì)象。語(yǔ)法如下:
Test test=new Test();
Test test=new Test("a");
每個(gè)對(duì)象都是相對(duì)獨(dú)立的,在內(nèi)存中占據(jù)獨(dú)立的內(nèi)存地址,并且每個(gè)對(duì)象都具有自己的生命周期,當(dāng)一個(gè)對(duì)象的生命周期結(jié)束時(shí),對(duì)象就變成垃圾,由Java虛擬機(jī)自帶的垃圾回收機(jī)制處理,不能再被使用。

2.訪問(wèn)對(duì)象的屬性和行為
用戶使用new操作符創(chuàng)建一個(gè)對(duì)象后,可以使用“對(duì)象.類成員”來(lái)獲取對(duì)象的屬性和行為。對(duì)象的屬性和行為是通過(guò)類成員變量和成員方法的形式來(lái)表示的,所以當(dāng)對(duì)象獲取類成員時(shí),也相應(yīng)的獲取了對(duì)象的屬性和行為。示例代碼如下:
package com.example;
public class TransferProperty {
int i=47;//定義成員變量
public void call(){//定義成員方法
System.out.println("調(diào)用call()方法");
for(i=0;i<3;i++){
System.out.println(i+"");
if(i==2){
System.out.println("\n");
}
}
}
public TransferProperty(){//定義構(gòu)造方法
}
public static void main(String[] args){
TransferProperty t1=new TransferProperty();//創(chuàng)建一個(gè)對(duì)象
TransferProperty t2=new TransferProperty();//創(chuàng)建另一個(gè)對(duì)象
t2.i=60;//將類成員變量賦值為60
System.out.println("第一個(gè)實(shí)例對(duì)象調(diào)用變量i的結(jié)果:"+t1.i++);//使用第一個(gè)對(duì)象調(diào)用類成員變量
t1.call();
System.out.println("第二個(gè)實(shí)例對(duì)象調(diào)用變量i的結(jié)果:"+t2.i);//使用第二個(gè)對(duì)象調(diào)用類成員變量
t1.call();
}
}
3.對(duì)象的引用
語(yǔ)法如下:
類名 對(duì)象引用名稱
如一個(gè)Book類的引用可以使用以下代碼:
Book book;
4.對(duì)象的比較
在Java語(yǔ)言中有兩種對(duì)象的比較方式,分別為“==”和equals()方法。但這兩種方式有著本質(zhì)的區(qū)別,示例代碼如下:
package com.example;
public class Compare {
public static void main(String args[]){
String c1=new String("abc");
String c2=new String("abc");
String c3=c1;
System.out.println("c2==c3的運(yùn)算結(jié)果為:"+(c2==c3));
System.out.println("c2.equals(c3)的運(yùn)算結(jié)果為:"+(c2.equals(c3)));
}
}
運(yùn)行結(jié)果如下:
c2==c3的運(yùn)算結(jié)果為:false
c2.equals(c3)的運(yùn)算結(jié)果為:true
equals()方法是String類中的方法,它用于比較兩個(gè)對(duì)象引用所指的內(nèi)容是否相等;而“==”運(yùn)算符比較的是兩個(gè)對(duì)象引用的地址是否相等。
5.對(duì)象的銷毀
每個(gè)對(duì)象都有生命周期,當(dāng)對(duì)象的生命周期結(jié)束時(shí),分配給該對(duì)象的內(nèi)存地址將會(huì)被收回。在其他語(yǔ)言中需要手動(dòng)回收廢棄的對(duì)象,但是Java擁有一套完整的垃圾回收機(jī)制,用戶不用擔(dān)心廢棄的對(duì)象占用內(nèi)存,垃圾回收器將回收無(wú)用的但占用內(nèi)存的資源。何種對(duì)象會(huì)被Java虛擬機(jī)視為垃圾?主要有以下2種:
(1)對(duì)象引用超過(guò)其作用范圍,這個(gè)對(duì)象將被視為垃圾,如下圖所示:

(2)將對(duì)象賦值為null,如圖所示:

垃圾回收器只能回收那些由new操作符創(chuàng)建的對(duì)象,如果某些對(duì)象不是通過(guò)new操作符在內(nèi)存中獲取一塊內(nèi)存區(qū)域,這種對(duì)象可能不能被垃圾回收機(jī)制所識(shí)別,所以在Java中提供了一個(gè)finalize()方法。
