java學習02(面向物件基礎)
1.物件可以簡單認識成一個記憶體塊,一個區域。
2.記憶體分為:棧記憶體,堆記憶體,方法區(堆的一部分,包括類的資訊,靜態方法,靜態變數,字串常量),這點對理解很多東西都很有用
3.包先簡單理解成一個資料夾(域名倒著寫)
4.面向物件:
繼承:
類只能單繼承,接口才可以多繼承
子類建構函式呼叫前預設會呼叫super(),呼叫父類的建構函式
子類重寫父類的方法遵循的原則:
方法名,引數列表要相同
返回值型別與申明異常型別,子類要小於父類
訪問許可權子類大於等於父類
封裝:
原則:高內聚,低耦合(內部多複雜,外部使用很簡單方便)
訪問修飾符:default protect public private
default (即預設,什麼也不寫): 在同一包內可見,不使用任何修飾符。使用物件:類、介面、變數、方法。
private : 在同一類內可見。使用物件:變數、方法。 注意:不能修飾類(外部類)
public : 對所有類可見。使用物件:類、介面、變數、方法
protected : 對同一包內的類和所有子類可見。使用物件:變數、方法。 注意:不能修飾類(外部類)。
一些小原則:
類的屬性:private(別人想訪問,給你set和get方法,方法裡可以寫業務邏輯,完成高內聚)
方法還是public為主。
多型:
1.方法的多型,不是屬性的多型
2.多型的三個必要條件:繼承,方法重寫,父類引用指向子類物件(這個需要好好理解)
向上自動轉型,向下強制轉型
final變數經常和static關鍵字一起使用,作為常量。下面是final變數的例子:
public static final String LOAN = "loan";
final也可以宣告方法。方法前面加上final關鍵字,代表這個方法不可以被子類的方法重寫。
如果你認為一個方法的功能已經足夠完整了,子類中不需要改變的話,你可以宣告此方法為final。
介面是比抽象類更抽象的東西,抽象類裡還有一些具體實現,介面從不實現。
介面可以理解成兩個模組之間的通訊標準,
介面和實現類之間不是父子關係,而是實現規則的關係,例如我有一個run的介面,cat實現了,就能跑,train實現了也能跑
體現瞭如果你是,你就一定能
抽象類體現了你有什麼,介面體現了你能幹什麼
java中類只能單繼承,介面可以多繼承.
內部類:(開發時用的不多,面試前多看看)
陣列拷貝
System.arraycopy(a, 1, b, 1, 3); a陣列從1下標開始,b從1開始接收,拷貝3個數據
通過arraycopy實現自己拷貝自己從而刪除一個元素,插入一個元素(明天自己實現下,刪除與插入)
強大又常用的兩個資料型別:String array,內部都有很多方法
array的tostirng
二維陣列:每一個元素是陣列,int[][] a=new int[3][] 為什麼不指定第二個,是不確定的,未必是一樣的,
二維陣列用的不多,後面一般用容器
通過object二維陣列可以存一個類似於表格的混合資料。
有需要定義一組常量時定義列舉,但是用處不大其實
---------------------
作者:彩筆梳子
來源:CSDN
原文:https://blog.csdn.net/qq_29637191/article/details/83789561
版權宣告:本文為博主原創文章,轉載請附上博文連結!