多態(tài)、內部類和異常、二維數(shù)組String類

多態(tài)

子類對象可以存到父類的變量中

前提條件

子父類關系

方法重寫

父類引用指向子類對象

好處

提高代碼的復用性和擴展性

缺點

不能使用子類對象的特有方法

多態(tài)成員訪問的特點

編譯看左邊,運行看左邊

成員變量

靜態(tài)方法

編譯看左邊, 運行看右邊? ,只要子類中重寫了,一定執(zhí)行子類的方法

非靜態(tài)成員方法 (全遮擋)

多態(tài)轉型

向上轉型 (子類轉父類)

線下轉型 (父類轉子類,有危險), 轉之前,要使用 instanceof關鍵字判斷一下

final

最終的, 無法被改變? , 只能賦值一次

修飾的特性

修飾類, 類不能被繼承

修飾方法, 方法不能被重寫

修飾變量, 變量只能賦值一次

修飾成員變量時

在初始化完畢之前必須要賦值

靜態(tài)是類初始化完畢前

非靜態(tài)是對象初始化完畢前

抽象類

abstract關鍵字

制定規(guī)則

一個類中如果有抽象方法,這個類也必須是抽象類

抽象類中可以沒有抽象方法

抽象不能實例化(創(chuàng)建對象) , 不安全, 抽象方法用不了

抽象類的子類可以是抽象類, 不用重寫抽象方法

抽象類的子類可以是非抽象類, 必須重寫抽象方法

java傳遞值得方式

基本數(shù)據(jù)類型傳遞的是值, 引用數(shù)據(jù)類型傳遞的是址, String稍微特殊

接口

interface implements

接口中全部都是抽象方法

接口中的成員變量

都是公開的, 靜態(tài)的, 最終的? public static final

作用

指定規(guī)則

思考的過程

代碼的框架

我們在思考過程中, 用來記錄業(yè)務邏輯.

類和接口之間的關系

類和類: 繼承 單繼承, 多層繼承

類和接口: 實現(xiàn), 可以多實現(xiàn)

接口和接口: 繼承, 可以多繼承


模板模型

實現(xiàn)類和接口中的內容保持一致

好處: 提高了代碼的擴展性

成員內部類

當類中的成員過多時, 使用成員內部類再次分組

成員內部類一般來說時為外部類服務的

特性

內部類可以直接調用外部類的成員

外部類需要先創(chuàng)建對象才能調用內部類的成員

內外部類都可以調用對方的私有化成員

創(chuàng)建內部類對象前必須先創(chuàng)建外部類對象

靜態(tài)內部類

基本用法和成員內部類相似

就是給內部類加上static關鍵字, 唯一的作用是可以讓用戶跳過外部類直接訪問到內部類

內部類是靜態(tài)的,絕不能認為內部類中的成員也是靜態(tài)的,這些成員還是原先的調用方式

如果內部類中有靜態(tài)成員,那么這個內部類也必須是靜態(tài)的

局部內部類

當一個類只能在當前方法中被用到時,我們沒有必要將他寫道外部去, 可能會干擾其他類的使用

局部內部類中如果使用局部變量, 那么,這個變量要變成常量

匿名內部類

創(chuàng)建某個類或接口的子類對象, 類只被使用異常

new 父類 () { } ;

異常

異常在Java中普遍存在, 并且有存在的意義

可能發(fā)生異常的地方 ?

運行時

代碼警告

語法錯誤(自己改)

解決異常的辦法

拋出

try...catch處理

代碼可以繼續(xù)運行 ,手動書寫處理過程

自定義異常

異常最終要的是類名

繼承Exception就是編譯時異常

繼承RuntimException就是運行時異常


二維數(shù)組

數(shù)組中存放的還是數(shù)組

權限修飾符

public protected 默認? private

java中的包

jvm識別類,要知道全名(包名+類名)

編譯器有自動補全功能,? 從類本上開始找 -- > import? -- > package

Object

toString

hashCode

equals

getClass

== 和 equals的區(qū)別

equals相等的

兩個對象 hashCode一定相等, equals不等的兩個對象, hashCode也有可能相等 (兩個方法同步重寫)

String

String 類代表字符串。Java 程序中的所有字符串字面值(如 "abc" )都作為此類的實例實現(xiàn)。我們可以將字符串看作是String, 但是嚴格嚴格意義上來說, String還是一個類,只是比較特殊罷了

常用的構造方法

public String():空構造

public String(byte[] bytes):把字節(jié)數(shù)組轉成字符串

public String(byte[] bytes,int index,int length):把字節(jié)數(shù)組的一部分轉成字符串

public String(char[] value):把字符數(shù)組轉成字符串

public String(char[] value,int index,int count):把字符數(shù)組的一部分轉成字符串

public String(String original):把字符串常量值轉成字符串

常用的獲取方法

int length(): 獲取字符串的長度

char charAt(int index): 獲取指定索引位置的字符

int indexOf(int ch): 返回指定字符在此字符串中第一次出現(xiàn)處的索引, ch是字符的碼表值

int indexOf(String str): 返回指定字符串在此字符串中第一次出現(xiàn)處的索引

int indexOf(int ch,int fromIndex): 返回指定字符在此字符串中從指定位置后第一次出現(xiàn)處的索引

int indexOf(String str,int fromIndex): 返回指定字符串在此字符串中從指定位置后第一次出現(xiàn)處的索引

int lastIndexOf? 同上

String substring(int start):從指定位置開始復制字符串,默認到末尾

String substring(int start,int end):從指定位置開始到指定位置結束復制字符串

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

相關閱讀更多精彩內容

友情鏈接更多精彩內容