面向對象(OOP)
面向對象編程語言擁有如下幾個重要的基本特性:
- 萬物皆爲對象(任何事物都可以表示爲程序中的對象)
- 每個對象都擁有其類型(類[class],在這裏
類
就是類型
的同義詞)面向對象的3大基本特點:
封裝(Encapsulation)
封裝是面向對象方法的重要原則,就是把對象的屬性和操作(或服務)結合爲一個獨立的整體,並儘可能隱藏對象的內部實現細節;
繼承(extends)
繼承是使用已存在的類的定義作爲基礎建立新類的技術. 新類的定義可以增加新的數據或新的功能,也可以用父類的功能,但不能選擇性地繼承父類;通過使用繼承,我們能非常方便的複用代碼,但是值得注意的是:繼承會提高代碼耦合度;
多態(Polymorphism)
多態是同一個行爲具有多個不同表現形式或形態的能力;多態就是同一個接口,使用不同的實例而執行不同操作;例如:
Animal animal_cat = new Cat(); Animal animal_dog = new Dog(); // --- 同一個接口(Animal) // --- 不同實例 new Cat(),new Dog()
這裏涉及到方法的重寫,戳這裏進行了解;
重寫與重載
重寫(Override)
重寫是子類對父類的允許訪問的方法的實現過程進行重寫編寫,且返回值和形參都不能改變. 子類只在需要時重寫父類方法;
重載(Overload)
重載是在一個類中,方法名相同,而參數不同,返回類型可以相同,也可以不相同(最常用在構造器的重載);被重載的方法必須改變參數列表(參數個數或類型或順序不一樣);
構造方法
每個類都有構造方法,如果沒有爲類定義構造方法的話,Java編譯器將會爲該類提供一個默認構造方法;在創建對象時,至少調用一個構造方法;構造方法必須與類重名,例如:
public class Test{ // --- 編譯器默認提供的構造方法; public Test(){ } // --- 自己重載寫的構造方法; public Test(String name){ } }
作用:創建對象時調用構造方法,爲對象執行初始化;
異常處理機制
拋出異常
在方法內拋出異常:
throw new Exception();
在方法上拋出(聲明)異常,可同時拋出多個:
public void test() throws Exception{}
捕獲異常
關鍵字:try – catch – finally
try{ // --- 可能出現異常的代碼 }catch(Exception e){ e.printStackTrace(); // --- 捕獲異常後執行的代碼,無異常則不執行 }finally{ // --- 無論是否發生異常都會執行的代碼 }
注意:當
try
,catch
代碼塊中有return
語句時,finally
中的代碼塊仍然執行(也就是finally
中的代碼塊要先於try
,catch
的return
語句執行),參考戳這裏;
多線程
作用:充分利用CPU資源;
如何創建一個線程?(三種方式)
實現
Runnable
接口
// --- 實現Runnable接口來創建一個線程 public class ThreadTwo implements Runnable{ // --- 重寫run方法 public void run(){ System.out.println("線程2正在運行..."); } // --- start方法 public void start(){ System.out.println("線程2準備就緒, 獲取到CPU資源即可執行run方法"); } } public class Test(){ public static void main(String args[]){ ThreadTwo t = new ThreadTwo(); t.start(); } }
繼承
Thread
類
// --- 繼承Thread類來創建一個線程 public class ThreadTwo extends Thread{ // --- 重寫run方法 public void run(){ System.out.println("線程2正在運行..."); } // --- start方法 public void start(){ System.out.println("線程2準備就緒, 獲取到CPU資源即可執行run方法"); } } public class Test{ public static void main(String arg[]){ ThreadTwo t = new ThreadTwo(); t.start(); } }
通過
Callable
和Future
創建線程
沒用過,不敢誤人子弟詳情可以參考,這裏;
集合框架
Collection:
Map: