面向?qū)ο筮M階

1. 抽象類和抽象方法

抽象類:使用abstract修飾的類,包含抽象方法的類必須是抽象類,但抽象類不一定包含抽象方法

抽象方法:使用abstract修飾的方法是抽象方法,抽象方法沒有方法體

抽象類可以包含方法和屬性,構(gòu)造方法,但是抽象不能實例化(不能使用new關(guān)鍵字創(chuàng)建對象)。

抽象類的構(gòu)造方法只能用來被子類調(diào)用

一個類繼承抽象類之后,必須重寫抽象類中的抽象方法或子類也是一個抽象類

實際操作:

執(zhí)行結(jié)果:

執(zhí)行結(jié)果

在這組編程中,Dog以及Cat作為Animal的子類,繼承到了Animal的特性,然后就必須執(zhí)行和重寫Animal所含的shout方法。

2.接口

接口:接口的本質(zhì)就是一種契約(規(guī)范),它比抽象類更加抽象,接口中所有的方法都是抽象方法(沒有方法體),所有的變量都是常量

定義:

public interface 接口名稱 extends 父接口1,父接口2...{

成員變量(常量)-------->默認使用public static final 修飾的

方法(抽象方法)--------->默認使用public abstract 修飾的

}

在java中類的繼承是單繼承(一個類只能有一個直接父類),而接口可以多繼承(一個接口可以繼承多個父接口)

接口不能實例化(不能new).接口不能包含構(gòu)造方法。

接口和抽象類的區(qū)別

1.抽象類可以包含著普通方法,構(gòu)造方法和非常量的成員變量,而接口中所有的方法都是抽象方法,不能有構(gòu)造方法,其成員變量為常量。

2.接口中方法默認使用public abstract修飾,成員變量默認使用public static final修飾

3.抽象類不能多繼承,而接口可以

實際操作:




3.內(nèi)部類

內(nèi)部類是在一個類中定義定外一個類,外部類的修飾符可以是默認或public

內(nèi)部修飾符可以是public, protected,默認,private以及static

內(nèi)部類可以訪問外部類的成員變量,但外部類不能訪問內(nèi)部的成員變量。

內(nèi)部類的分類:

1.成員內(nèi)部類

a.非靜態(tài)成員內(nèi)部類

b.靜態(tài)成員內(nèi)部類

2.匿名類

3.局部內(nèi)部類



4.String 類常用方法



實際操作


執(zhí)行結(jié)果:

注意,因為往后會比較多地接觸String字符串,所以對于這些常用方法必須熟練掌握。

5.常量池和字符串判斷

關(guān)于常量池:

?在Java的內(nèi)存分析中,我們會經(jīng)常聽到關(guān)于“常量池”的描述,實際上常量池也分了以下三種:

1. 全局字符串常量池(String Pool)

? ? ??全局字符串常量池中存放的內(nèi)容是在類加載完成后存到String Pool中的,在每個VM中只有一份,存放的是字符串常量的引用值(在堆中生成字符串對象實例)。

2. class文件常量池(Class Constant Pool)

? ? ??class常量池是在編譯的時候每個class都有的,在編譯階段,存放的是常量(文本字符串、final常量等)和符號引用。

3. 運行時常量池(Runtime Constant Pool)

? ? ??運行時常量池是在類加載完成之后,將每個class常量池中的符號引用值轉(zhuǎn)存到運行時常量池中,也就是說,每個class都有一個運行時常量池,類在解析之后,將符號引用替換成直接引用,與全局常量池中的引用值保持一致。

實例:

實例

分析過程:

利用內(nèi)存分析,因為str1 和str3 在方法區(qū)里面所指向的是同一個地址,所以判斷為true

str2 指向的是堆中的一個地址,而str4也被賦予了str2的方法,但是所指向的地址與str2不同,所以結(jié)果為false。

Str5 指向的是方法區(qū)String Pool 里的字符串,str4是在運行的時候調(diào)用intern()函數(shù),返回String Pool中“def”的引用值,如果沒有就將str2的引用值添加進去,在這里,String Pool中已經(jīng)有了“def”的引用值了,所以返回上面在new str2的時候添加到String Pool中的 “def”引用值,最后str5在解析的時候就也是指向存在于String Pool中的“def”的引用值結(jié)果為true

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

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