1.數(shù)據(jù)類型提升
char,byte,short—->int—>long—>float—>double;
整數(shù)類型默認(rèn)為int,浮點類型默認(rèn)為double,所以定義float類型時后面必須加f.
2.重載
1.在一個類里面 2.方法名一樣 3.參數(shù)類型不同或者參數(shù)個數(shù)不同
注意:與有無返回值無關(guān)。
可以變參數(shù)的形參也屬于重載,和數(shù)組是一致的。public void getA (String…arg){};
3.重寫 1.子類方法的返回值類型 參數(shù)名 參數(shù)列表 和父類一樣
2.子類方法的修飾符必須大于等于父類
3.若父類跑出異常,子類異常不能大于父類
4.子夫類必須是static 或者都是非static
4.值的傳遞
1.基本數(shù)據(jù)類型 是賦值
2.引用數(shù)據(jù)類型 是賦的地
5.this 1.可以修飾屬性,方法,構(gòu)造器。(屬于哪個類那么this就代表它)
2.構(gòu)造器中必須聲明在第一行。
6.super 1.構(gòu)造函數(shù)第一行默認(rèn)是super();
2.可用于訪父類中定義的屬性
3.可以用于調(diào)用父類中定義的成員方法
4.當(dāng)子類和父類屬性重名時,可以用super來區(qū)分
5.在構(gòu)造器內(nèi)部super必須在第一行。 所以this和super不能在構(gòu)造器中同時出現(xiàn)

7.多態(tài)
1.多態(tài)的前提是:有繼承關(guān)系 要有子類對父類方法的重寫
2.當(dāng)父類引用指向子類引用,當(dāng)調(diào)用方法時 實際上執(zhí)行的是子類重寫父類的方法,若子類沒有,才調(diào)用父類的方法。
3.當(dāng)父類引用指向子類引用,當(dāng)調(diào)用同名的屬性時,優(yōu)先調(diào)用的是父類的。(本來屬性是沒有多態(tài)的)
4.如果是在子類本類中調(diào)用同名的屬性,調(diào)用的是本類中的,因為前面有this
8.==
1.基本數(shù)據(jù)類型:根據(jù)基本數(shù)據(jù)類型的值判斷是否相等。相等返回true,反之返回false 注:兩端數(shù)據(jù)類型可以不同,在不同的情況下,也可以返回true。(類型提升) int i = 12; int j = 12; System.out.PRintln(i == j);// true char c = 12; System.out.println(i == c);// true float f = 12.0F; System.out.println(i == f);// true int k = 65; char a = 'A'; System.out.println(k == a);// true 2.引用數(shù)據(jù)類型:比較引用類型變量的地址值是否相等。 Person p1 = new Person(); Person p2 = new Person(); Person p3 = p1; System.out.println(p1 == p2);// false System.out.println(p1 == p3);// true9.equals
①只能處理引用類型變量②在Object類,發(fā)現(xiàn)equals()仍然比較的兩個引用變量的地址值是否相等 java.lang.Object類,是所有類的根父類 Person p1 = new Person(); Person p2 = new Person(); System.out.println(p1.equals(p2));//false System.out.println(p1==p2);//false //像String 包裝類 File類 Date類這些重寫Object類的equals()方法和toString()方法,比較是兩個對象的 //"實體內(nèi)容"是否完全相同。 String str1 = new String("AA"); String str2 = new String("AA"); System.out.println(str1 == str2);//false System.out.println(str1.equals(str2));//trueinteger a=new integer(5);integer b=new integer(5);a==b//false //==在引用數(shù)據(jù)類型中比較的是地址值a.equals(b)//ture 包裝類重寫了equals方法比較的是值10.String類
1.==和equals 比較特別
//關(guān)于String類存字符串常量池,堆里面都是存的地址。常量池有就復(fù)用,沒有就創(chuàng)建 String str1 = "AA"; String str2 = "AA"; String str3 = new String("AA"); System.out.println(str1 == str2);//true System.out.println(str1.equals(str2));//true System.out.println(str1 == str3);//false System.out.println(str1.equals(str3));//true System.out.println(p1.name == p2.name);//true
11.static 1.修飾屬性:由該類創(chuàng)建的所以對象,都公用這一個屬性。當(dāng)其中一個對象對起修改時,其他對象也會修改。存在靜態(tài)域中的。隨著類的加載而加載,獨有一份。
2.修飾方法:隨著類的加載而加載,獨有一份。
3.靜態(tài)方法里面是不能有this和super的。
12.代碼塊 * 類的第四個成員:初始化塊(或代碼塊) * 1.代碼塊如果有修飾的話,那么只能使用static。 * 2.分類: * 靜態(tài)代碼塊: * 1.里面可以有輸出語句 * 2.隨著類的加載而加載,而且只被加載一次 * 3.多個靜態(tài)代碼塊之間按照順序結(jié)構(gòu)執(zhí)行 * 4.靜態(tài)代碼塊的執(zhí)行要早于非靜態(tài)代碼塊的執(zhí)行。 * 5.靜態(tài)的代碼塊中只能執(zhí)行靜態(tài)的結(jié)構(gòu)(類屬性,類方法) * ②顯式的初始化或代碼塊初始化(此處兩個結(jié)構(gòu)按照順序執(zhí)行) 也滿足 * * 非靜態(tài)代碼塊: * 1.可以對類的屬性(靜態(tài)的 & 非靜態(tài)的)進行初始化操作,同時也可以調(diào)用本類聲明的方法(靜態(tài)的 & 非靜態(tài)的) * 2.里面可以有輸出語句 * 3.一個類中可以有多個非靜態(tài)的代碼塊,多個代碼塊之間按照順序結(jié)構(gòu)執(zhí)行 * 4.每創(chuàng)建一個類的對象,非靜態(tài)代碼塊就加載一次。 * 5.非靜態(tài)代碼塊的執(zhí)行要早于構(gòu)造器 * * 關(guān)于屬性賦值的操作:①默認(rèn)的初始化②顯式的初始化或代碼塊初始化(此處兩個結(jié)構(gòu)按照順序執(zhí)行) ③構(gòu)造器中;④通過方法對對象的相應(yīng)屬性進行修改
新聞熱點
疑難解答
圖片精選