java知識總結(詳細)

1、基礎語法

-- 數據類型:八大基本類型byte short int long float double char boolean / 引用類型
-- 分支結構:if(判斷條件1/true){滿足條件的代碼1...}else if(判斷條件2/true){不滿足條件的代碼2...}
-- 循環結構:for/while(先判斷後執行)/do...while(循環體最少執行1次)
	-- for(循環的開始位置;循環條件;更改條件){循環體} 溫馨提示:for循環不要設計的太深入
		--重點是:注意for循環的執行流程
-- 數組:可以存放多個  相同類型 的數據
	-- int[] a = new int[10];//a是引用類型的變量,保存的是數組在堆內存中的地址值
	-- int a[] = {1,2,3,4,5};
	-- a.length用來獲取數組的長度。數組中元素都有唯一的標誌也就是下標,默認從0開始,最大值是數組長度-1
	-- 遍歷數組:for(int i = 0 ; i< a.length ;i++){}
		-- 如果取到了不存在的下標,會拋出異常:ArrayIndexOutOfBoundsException
-- 利用數組和嵌套for可以完成算法,比如:冒泡排序/合併排序/快速排序/二分查找算法,先預習
-- 數組工具類:
	-- Arrays.sort(任意類型[] a);//默認是從小到大排序 
	-- copyOf(原數組名,新數組長度);//根據新數組長度決定複製時是擴容還是縮容

2、OOP

-- 封裝:好處就是提高程序的安全性,把細節私有化private
	-- 可以封裝方法,把方法只在類的內部顯示
	-- 可以封裝屬性,只不過封裝後只能在類的內部顯示,外部想修改值或者獲取值,都需要訪問對應的set()/get()
	-- this:代表的是本類對象的引用,如果要使用本類的成員,可以省去,創建本類對象的代碼
		-- this可以用來調用本類的成員變量     
		-- 互相調用構造方法
		
-- 繼承:好處是提高代碼的複用性
	-- 父類:提取子類的所有共性功能
	-- 子類:只需要繼承父類,就可以使用父類的所有功能(除private)
	-- 當子類需要修改繼承過來的方法業務時,發生了方法重寫的現象
		-- 重寫Override要求:子類的方法聲明和父類一樣,而且,子類要有重寫的權限
		-- 完成重寫後,從此使用的方法體都是重寫後的也就是使用的是子類的方法體
	-- super :代表的是父類對象的引用,如果要在子類中使父類的成員,可以省去在子類中創建父類對象的代碼
		-- super 可以在子類中調用父類的功能
		-- TODO 在子類中調用父類的構造方法

-- 多態:前提有兩個 繼承+重寫,目的是 統一調用標準(父類)
	-- 口訣: 父類引用 指向 子類對象   +  編譯看左邊,運行看右邊(方法重寫現象)
	-- 好處:不關心具體的子類類型,會把子類都當做父類來看,寫出通用代碼
		-- catch 異常的父類類型Exception
		-- public void eat(Object o){}

-- 抽象類:是抽象層
	-- 如果不需要提供方法體時就稱爲抽象方法,類裏如果有抽象方法這個類就是抽象類
	-- 把父類修飾設計成抽象類,可以包含抽象方法或者普通方法
	-- abstract class B{  public void eat(){}     abstract public void sleep() ;  }
	-- class A extends B{  }
		-- 如果B是抽象類,對於A的要求:必須重寫所有抽象方法sleep(),否則A就是抽象類
		-- 如果B是普通類,對於A的要求:哪個方法的業務發生了改變,我們就重寫哪個,沒有必須的要求
	-- 體現了程序的靈活性:如果需要方法體就提供,不需要就不提供

-- 接口:是抽象層
	-- 接口是一個特殊的抽象類,特殊在接口裏都是抽象方法
	-- 使用時非常靈活,可以降低程序間的耦合性!!!
	-- 接口突破了java的單繼承的侷限性,因爲接口可以多繼承還能多實現
	-- 繼承關係:
		-- 子類和父類:子類繼承父類後,就擁有了父類的功能----單繼承
		-- 子接口和父接口:子接口繼承了父接口後,子接口也同樣擁有父接口的功能----可以單繼承也可以多繼承
	--	實現關係:
		-- 實現類 和 接口 :可以單實現也可以多實現,要求實現類要重寫接口的所有抽象方法,否則實現類就是個抽象的實現類
	-- interface A { void save();   void get(); }
	-- class AImpl implements A { //可以把所有抽象方法都重寫,也可以啥都不幹變成一個抽象的實現類    }
		-- 創建對象測試:A a = new AImpl();
					-- new AImpl();調用了實現類自己的無參構造,而且無參構造裏第一行隱藏着super(),這時想去當前的父類也就是接口裏找無參構造,但是接口裏根本就沒有構造方法,那這時找誰去要的無參構造呢?--其實會去找Object要無參構造。
	
-- 其他:靜態內存/代碼塊/構造方法
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章