arraylist是用來儲存資料的陣列。
陣列的長度不可變,陣列如果要擴容,可以用陣列的複製:int copyof(int, int newlength)。
為了解決陣列長度不可變的問題, 可以實現陣列長度動態變化。
arraylist僅支援引用型別的資料。
arraylistarrlist = new arraylist()
:泛型,適用所有的引用型別資料。
如果想使用基本資料型別那也沒有問題,基本資料型別都有相對應的引用型別可以表示,如下:
基本資料型別
引用資料型別
intinteger
char
character
byte
byte
double
double
boolean
boolean
void add(e e):往陣列中新增元素
e remove(int index):移除掉index位置的元素, 並返回
e get(int index):獲取index位置的元素, 並返回
int size():讀取陣列長度
:泛型, 規定集合中元素的型別
沒有規定泛型, 集合中的元素可以是任意型別
所以使用get()之類的方法時, 就不能確定返回值型別
所以, 使用集合時, 需要規定泛型
繼承: extends
繼承中有子類和父類兩個概念,其中子類又叫衍生類或擴充套件類,父類又可以稱之為基類。
當乙個子類繼承了父類,就可以繼承其所有的成員變數和方法。
所有的類, 都有唯一的父類,如果沒有寫父類, 說明父類就是 object。開玩笑的說,我們可以稱之為祖宗類。
我們可以在子類中定義獨屬於自己的成員變數和方法,子類的功能一定比父類更加強大。
1.子類中的成員變數和父類同名 name
dog d = new dog();
d.name -> 就是指自己定義的name,不是繼承過來的name
結論: 父子類中的成員變數不要同名
2.子類中可以引用父類物件
super
3.建立子類物件之前, 會先建立父類物件
載入子類之前, 會先載入父類
4.構造方法: 父類的構造方法不能被子類繼承的
建立子類物件, 會先預設呼叫父類的無參構造器
原因: 子類構造方法中, 第一行預設 super()
可以手動呼叫父類其他構造方法
結論: 子類構造方法中, 一定會先呼叫父類的構造方法
父類中, 建議先寫無參構造器
5.通過子類物件呼叫方法時
先看子類中有沒有定義這個方法, 定義了, 呼叫子類方法
子類中沒有這個方法, 呼叫父類繼承的方法
在子類中重新定義乙個和父類完全一樣的方法,這就是重寫,我們還能在重寫的方法中新增新的**。這時候在子類中呼叫方法的時候會用子類定義的方法,而不是直接繼承父類的方法。
PHP類繼承 extends使用介紹
出來工作這麼久了,專案經驗倒是不少,但是當問及底層的東西時候,常常是一言不發了。現在專案設計底層的東西越來越少,可以說是真正用到的也就是那麼一點,真正核心的東西都已經被框架封裝好了。總感覺自己一直進步很慢,關於底層設計思想,常常也只可意會。隨著時間的流逝,我們常常會感慨書到用時方恨少了,接下來一定要...
繼承的介紹及小例子
一 繼承的概念 讓乙個沒有某個屬性或方法的物件能夠使用另乙個具有某個方法或屬性的物件的屬性或方法。先看乙個小規模的例項和例項之間的繼承 var obj var obj2 如何利用show,列印出obj2的名字?obj.show 結果是 obj obj.show.call obj2 結果是 obj2 ...
ArrayList及LinkedList原始碼分析
jdk7的情況 建議在開發中使用帶引數的構造器 arraylist list new arraylist int capaity 這樣能夠減少擴容次數,從而提高效率。jdk8的情況 小總結jdk7中的arraylist中底層object陣列的建立類似於單例模式中的餓漢式,一呼叫建構函式就建立了乙個長...