最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaSE的類和對象你真的了解嗎

 更新時間:2022年03月29日 13:27:53   作者:星鴉wyk  
這篇文章主要為大家詳細介紹了JavaSE的類和對象,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助

1.基本概念

首先我們需要弄清楚幾個概念:面向?qū)ο笫鞘裁础㈩愂鞘裁?、對象又是什么?還是逐個來說

1.1面向?qū)ο?/h3>

我們常說Java是面向?qū)ο蟮恼Z言,C語言是面向過程的語言,那面向?qū)ο笫鞘裁?,它和面向過程的區(qū)別在哪?

面向?qū)ο笫墙鉀Q問題的一種思想,其核心是依靠對象之間的交互來解決事情

至于面向?qū)ο蠛兔嫦蜻^程的區(qū)別,假設(shè)現(xiàn)在有一道數(shù)學題:

面向過程:你自己進行手算,你需要關(guān)注套用什么公式,如何化簡、哪些條件組合可以推出什么結(jié)論等,中間有一個環(huán)節(jié)出錯都不行

面向?qū)ο?/strong>:你把問題給計算機,讓計算機解決,我們關(guān)注的只是人和計算機這兩個對象如何交互

這么看面向?qū)ο蠛孟癖让嫦蜻^程更高級,但其實二者沒有好與壞之分,它們都有自己專門的應用場景,就比如數(shù)學考試的時候題目你就只能自己寫( ̄▽ ̄)

1.2類和對象

  • 類:對一個實體的描述
  • 對象:類的實例化

假設(shè)你要設(shè)計某個東西,類就是你所畫的圖紙,對象則是你通過圖紙造出來的實物;一個類可以產(chǎn)生多個對象

2.類的定義及使用

2.1定義

在定義類的時候需要使用一個關(guān)鍵字:class

具體語法如下:

class ClassName {
    field;
    method;
}
  • ClassName:類名
  • field:成員變量
  • method:成員方法

我們現(xiàn)在定義一個類Book,里面成員變量包括書名、作者和價格,成員方法就是打印所有成員變量

文章后面的概念都會圍繞這個類來進行講解 

2.2類的實例化

在main方法中實例化一個對象用到的關(guān)鍵字:new

代碼如下:

Book book1 = new Book();

之后便可以使用“.”來訪問類中的成員變量和成員方法,如下:

之前我們說過Java中的變量都要初始化,類里面的成員變量也不例外,如果成員變量未初始化,那么默認是對應的數(shù)據(jù)類型的0值

整型變量是0,浮點數(shù)是0.0,布爾類型為false,引用類型為null,char為'\u0000' 

3.this引用

3.1訪問成員變量

我們現(xiàn)在往類里面再增加一個方法setBook,用這個方法來對成員變量進行初始化

public void setBook(String name,String author,int price) {
        name=name;
        author=author;
        price=price;
    }

我們再來看一下結(jié)果:

 為什么全部都是0值?

其原因在于方法的參數(shù)名和成員變量名相等,形參因為數(shù)局部變量,所以程序認為方法里面的name等變量全部都是形參

我們只需要將等號左邊的變量加上this就可以解決這個問題

this代表的是當前對象的引用(誰調(diào)用了this,誰就是當前對象)

上圖中book1調(diào)用的setBook方法,所以 book1是當前對象,方法中的this.name等變量就相當于告訴程序這個不是方法的形參,而是對象book1的成員變量

3.2訪問成員方法

這個比較好理解,就是在方法里面引用類中的其它方法,但注意一點:引用不能成環(huán)

假設(shè)setBook里面引用了show方法,那么show方法里面就不能再引用setBook,否則就亂套了

還有一點需要補充:

上面提到過一個類可以產(chǎn)生多個對象,那么多個對象調(diào)用同一個方法,程序如何分辨是哪個對象調(diào)用的?

依舊是this引用

類中的方法起始都有一個隱式的this參數(shù),通過this知道是哪個對象調(diào)用的方法,也就是說setBook方法其實是有4個參數(shù),如下:

public void setBook(Book this,String name,String author,int price) {
        this.name=name;
        this.author=author;
        this.price=price;
    }

除了訪問成員方法外,this還可以調(diào)用本類其它構(gòu)造方法,這一點在構(gòu)造方法中再介紹

3.3this引用的特性

1.只能在成員方法中使用

2.是成員方法的第一個隱藏的參數(shù)

3.在成員方法中只能引用當前對象(在對象Book1中使用this就只能引用Book1,不能引用對象Book2)

4.為對應類的類型引用,即哪個對象調(diào)用就是哪個對象的引用類型

4.構(gòu)造方法

構(gòu)造方法也是成員方法,但它比較特殊,對象的初始化除了在main方法中使用“.”一個一個初始化外還可以使用構(gòu)造方法

在實例化一個對象的時候一定會經(jīng)過兩個步驟:

  • 分配內(nèi)存
  • 調(diào)用合適的構(gòu)造方法

如果用戶沒有寫構(gòu)造方法,編譯器會默認提供一個不帶參數(shù)的構(gòu)造方法,寫了就調(diào)用用戶自己寫的構(gòu)造方法

4.1構(gòu)造方法的特點

  • 方法名要和類名相同
  • 沒有返回值,即使是寫void也不行
  • 在整個對象的聲明周期內(nèi)只能調(diào)用一次
  • 可以重載

我們寫一個構(gòu)造方法如下:

 public Book(String name, String author, int price) {
        this.name = name;
        this.author = author;
        this.price = price;
    }

那么初始化對象如下:

4.2this在構(gòu)造方法中使用

上面提到構(gòu)造方法可以重載,那么我們再寫一個沒有參數(shù)的構(gòu)造方法

 public Book() {
   
    }

this在構(gòu)造方法中可以調(diào)用其它的構(gòu)造方法,比如我在沒有參數(shù)的構(gòu)造方法中調(diào)用上面的有三個參數(shù)的構(gòu)造方法

注意:

  • this同樣不能成環(huán)
  • this必須放在構(gòu)造方法的第一行

總結(jié)

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!

相關(guān)文章

  • RabbitMQ 最常用的三大模式實例解析

    RabbitMQ 最常用的三大模式實例解析

    這篇文章主要介紹了RabbitMQ 最常用的三大模式實例解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-12-12
  • Java實現(xiàn)的決策樹算法完整實例

    Java實現(xiàn)的決策樹算法完整實例

    這篇文章主要介紹了Java實現(xiàn)的決策樹算法,簡單描述了決策樹的概念、原理,并結(jié)合完整實例形式分析了java實現(xiàn)決策樹算法的相關(guān)操作技巧,代碼中備有較為詳盡的注釋便于理解,需要的朋友可以參考下
    2017-11-11
  • springboot CompletableFuture異步線程池詳解

    springboot CompletableFuture異步線程池詳解

    這篇文章主要介紹了springboot CompletableFuture異步線程池的使用,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-04-04
  • 淺談一下Java中的悲觀鎖和樂觀鎖

    淺談一下Java中的悲觀鎖和樂觀鎖

    這篇文章主要介紹了一下Java中的悲觀鎖和樂觀鎖,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-04-04
  • Java中的Object類詳細解讀

    Java中的Object類詳細解讀

    這篇文章主要介紹了Java中的Object類詳細解讀,java.lang.Object是類層次結(jié)構(gòu)的根類,即所有其它類的父類,每個類都使用 Object 作為超類,需要的朋友可以參考下
    2023-11-11
  • Java實現(xiàn)PDF轉(zhuǎn)圖片的三種方法

    Java實現(xiàn)PDF轉(zhuǎn)圖片的三種方法

    有些時候我們需要在項目中展示PDF,所以我們可以將PDF轉(zhuǎn)為圖片,然后已圖片的方式展示,效果很好,Java使用各種技術(shù)將pdf轉(zhuǎn)換成圖片格式,并且內(nèi)容不失幀,本文給大家介紹了三種方法實現(xiàn)PDF轉(zhuǎn)圖片的案例,需要的朋友可以參考下
    2023-10-10
  • 教你用Java實現(xiàn)RSA非對稱加密算法

    教你用Java實現(xiàn)RSA非對稱加密算法

    今天帶各位小伙伴學習怎么用Java實現(xiàn)RSA非對稱加密算法,文中有非常詳細的解釋及代碼示例,對正在學java算法的小伙伴們很有幫助,需要的朋友可以參考下
    2021-05-05
  • Spring?Validation中的用戶注冊、JWT令牌之用戶登入功能

    Spring?Validation中的用戶注冊、JWT令牌之用戶登入功能

    本文介紹了使用SpringValidation進行用戶注冊驗證和JWT進行用戶登錄的方法,在用戶注冊時,通過@Validated注解和@Pattern注解對用戶名和密碼進行格式校驗,并使用Result對象返回驗證結(jié)果,感興趣的朋友一起看看吧
    2024-11-11
  • IDEA通過git回滾到某個提交節(jié)點或某個版本的操作方法

    IDEA通過git回滾到某個提交節(jié)點或某個版本的操作方法

    這篇文章主要介紹了IDEA通過git回滾到某個提交節(jié)點或某個版本的方法,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-07-07
  • 關(guān)于java命令的本質(zhì)邏輯揭秘過程

    關(guān)于java命令的本質(zhì)邏輯揭秘過程

    Java是通過java虛擬機來裝載和執(zhí)行編譯文件(class文件)的,java虛擬機通過命令java  option 來啟動,這篇文章主要給大家介紹了關(guān)于java命令的本質(zhì)邏輯揭秘的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2021-05-05

最新評論

东明县| 柳江县| 韶关市| 鱼台县| 陵川县| 遂溪县| 武威市| 石楼县| 资兴市| 汶川县| 景洪市| 禹州市| 湖南省| 盐源县| 临江市| 宜宾市| 将乐县| 济阳县| 崇礼县| 玉屏| 宝坻区| 东宁县| 峨眉山市| 罗江县| 蕉岭县| 即墨市| 得荣县| 柳河县| 竹溪县| 壶关县| 泾阳县| 博兴县| 大关县| 遂川县| 安岳县| 阜城县| 开原市| 磐安县| 东海县| 米泉市| 枝江市|