Java語(yǔ)言——對(duì)象

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ī)制處理,不能再被使用。


Java語(yǔ)言

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ì)象將被視為垃圾,如下圖所示:

對(duì)象超過(guò)作用范圍將消亡

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

對(duì)象賦值為null時(shí)將死亡

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


學(xué)習(xí)是一件很快樂(lè)的事,這種快樂(lè)來(lái)自于你的思考。完成一項(xiàng)學(xué)習(xí)任務(wù)固然重要,但更重要的是在完成的過(guò)程中學(xué)到了什么,掌握了什么,遇到一些什么問(wèn)題,為什么會(huì)出現(xiàn)這種問(wèn)題,根源是什么,都有哪些解決方案,什么樣的情況適合這個(gè)方案。只有在不斷的思考,你的能力才會(huì)有所提升!
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法,類相關(guān)的語(yǔ)法,內(nèi)部類的語(yǔ)法,繼承相關(guān)的語(yǔ)法,異常的語(yǔ)法,線程的語(yǔ)...
    子非魚_t_閱讀 34,671評(píng)論 18 399
  • 從三月份找實(shí)習(xí)到現(xiàn)在,面了一些公司,掛了不少,但最終還是拿到小米、百度、阿里、京東、新浪、CVTE、樂(lè)視家的研發(fā)崗...
    時(shí)芥藍(lán)閱讀 42,793評(píng)論 11 349
  • (一)Java部分 1、列舉出JAVA中6個(gè)比較常用的包【天威誠(chéng)信面試題】 【參考答案】 java.lang;ja...
    獨(dú)云閱讀 7,256評(píng)論 0 62
  • 《父愛如山》 -------寫給今天的你 父愛如山,多么平淡, 不說(shuō)亦可,寫寫看吧。 你八歲了,多么可愛...
    瑤湖閱讀 441評(píng)論 0 1
  • 夢(mèng),是一種奇怪的東西,只在熟睡時(shí)產(chǎn)生。明明沒(méi)有畫面,腦海中卻會(huì)浮現(xiàn)出一連串的情節(jié)。其中的情緒,也牽動(dòng)著做夢(mèng)之人。夢(mèng)...
    云栗閱讀 201評(píng)論 0 1

友情鏈接更多精彩內(nèi)容