一: int i=1;int j=i++;j=1
j=++i;j=2
二:instanceof 二元操作符,判斷左邊對象是否是它右邊類的實例,返回boolean類型
如String s=“123”;boolean is= s instanceof Object,返回true
三:final變量是在聲明時爲一個空白,一旦賦值在其生命週期中是不會被修改
final類,該類不能被繼承,一個final類中的所有方法都默認爲final。因爲此時再也無法覆蓋它們。
四:String的轉換
character integer float double boolean short的toString方法使他們轉換爲String
int先要轉換爲integer對象後才能使用toString方法,
int i=4;integer I1=new Interger(i1);String si1=I1.toString();
string轉換爲其他類型數據,parseInt(String s),parseLong(String s)等等
五:異常throws總是出現在一個函數頭中,用來標明該成員函數可能拋出的各種異常
throw總是出現在函數體重,用來拋出一個異常
在不顯示聲明拋出異常,默認情況下,都是可以拋出runtimeException的
六:java面向對象的精髓
抽象:抽象就是忽略一個主題中與當前目標無關的方面,而將目標的某個特性進行提煉。
繼承:新類可以從現有的類中派生,這個過程稱爲類繼承,新類繼承了原類的特性,繼承了基類的方法和實例變量,並且可以修改或增加新的方法適合自己的需要。
封裝:封裝把過程和數據包圍起來,對數據的訪問只能通過調用以定義的接口。
多態:允許不同類的對象對同一個消息作出響應,很好地解決了函數同名問題。
同一實現接口可以用不同的實例而執行不同的操作。通過重寫父類的方法來實現。
七:面向對象的設計原則
開閉原則,對擴展開放,對修改關閉
依賴倒轉原則:要依賴於抽象,不要信賴於實現
里氏代換原則:任何基類可以出現的地方,子類一定可以出現
合成/聚合複用原則:在一個新的對象裏面使用一些已有的對象,使之成爲新對象的一部分。
高內聚低耦合
接口隔離原則:
八:方法可以重載多次,而子類覆蓋只能有一次
方法重載:同一個類中的兩個或者兩個以上的方法可以有同一個名字,只要他們的參數聲明不同(參數類型或參數的數量)即可,overload,是實現多態的一種方式
在找不到精確匹配的方法是,java會自動轉換參數類型
方法覆蓋:子類中定義的一個方法,其名稱、返回類型以及參數正好與父類中的相同,那就是說子類的方法覆蓋了父類的方法
注意:
方法名稱、返回類型、參數都必須相同
子類方法不能縮小父類方法的訪問權限
子類方法不能拋出比父類方法更多的異常
方法覆蓋只存在於子類和父類之間,同一類中的方法只能重載不能覆蓋
父類的靜態方法不能被子類覆蓋爲非靜態方法
子類可以定義與父類的靜態方法同名的靜態方法,以便在子類中隱藏父類的靜態方法
父類的非靜態方法不能被子類覆蓋爲靜態方法
父類的私有方法(private)不能被子類覆蓋
父類的抽象方法可以被子類通過兩種途徑覆蓋:子類實現父類的抽象方法,子類重新聲明父類的抽象方法
父類的非抽象方法可以被覆蓋爲抽象方法
九:構造函數
每創建一個類的實例都去初始化它的所有變量是乏味的。如果一個對象在被創建時就完成了所有的初始工作,將是簡單的和簡潔的。因此,Java在類裏提供了一個特殊的成員函數,叫做構造函數(Constructor)。 java 構造函數的執行過程 類初始化時構造函數調用順序:
一個構造函數是對象被創建時初始對象的成員函數。它具有和它所在的類完全一樣的名字。一旦定義好一個構造函數,創建對象時就會自動調用它。構造函數沒有返回類型,即使是void類型也沒有。這是因爲一個類的構造函數的返回值的類型就是這個類本身。構造函數的任務是初始化一個對象的內部狀態,所以用new操作符創建一個實例後,立刻就會得到一個清楚、可用的對象。
構造方法是一種特殊的方法,具有以下特點。
(1)構造方法的方法名必須與類名相同。
(2)構造方法沒有返回類型,也不能定義爲void,在方法名前面不聲明方法類型。
(3)構造方法的主要作用是完成對象的初始化工作,它能夠把定義對象時的參數傳給對象的域。
(4)構造方法不能由編程人員調用,而要系統調用。
(5)一個類可以定義多個構造方法,如果在定義類時沒有定義構造方法,則編譯系統會自動插入一個無參數的默認構造器,這個構造器不執行任何代碼。
(6)構造方法可以重載,以參數的個數,類型,或排列順序區分。
(1)初始化對象的存儲空間爲零或null值;
(2)調用父類構造函數;
(3)按順序分別調用類成員變量和實例成員變量的初始化表達式;