java基礎(chǔ)4
1.子類的實(shí)例化過(guò)程:產(chǎn)生對(duì)象并對(duì)成員變量默認(rèn)初始化-->對(duì)構(gòu)造方法中的形參賦值-->檢查構(gòu)造方法中是
否有this()語(yǔ)句調(diào)用-->super語(yǔ)句調(diào)用或隱式調(diào)用父類的構(gòu)造方法-->對(duì)當(dāng)前類中的成員變量顯式初始化-->
執(zhí)行當(dāng)前構(gòu)造方法中的代碼
2.super和this調(diào)用語(yǔ)句不能同時(shí)出現(xiàn)在一個(gè)構(gòu)造函數(shù)中,。因?yàn)閠his中已經(jīng)有了對(duì)super的調(diào)用。
3.子類覆蓋父類方法時(shí)不能把父類方法的訪問(wèn)權(quán)限改的更弱。
4.final類型的成員變量,,要么在一開(kāi)始就進(jìn)行賦值,,要么就在構(gòu)造方法中進(jìn)行賦值,別的地方一般不能賦
值,。如果final的前邊還有static修飾的話,,就不能在構(gòu)造方法中賦值,因?yàn)闃?gòu)造方法需要有一個(gè)對(duì)象,。
5.在強(qiáng)制轉(zhuǎn)換類時(shí)使用instanceof來(lái)判斷是否是希望的那個(gè)類,。父類需要強(qiáng)制轉(zhuǎn)換才能成為子類,而子類則
可以直接當(dāng)作父類來(lái)調(diào)用,。
6.多態(tài)性
1).應(yīng)用程序不必為每一個(gè)派生類(子類)編寫(xiě)功能調(diào)用,,只需要對(duì)抽象基類進(jìn)行處理即可。這一招叫“以
不變應(yīng)萬(wàn)變”,,可以大大提高程序的可復(fù)用性,。
2).派生類的功能可以被基類的引用變量引用,這叫向后兼容,,可以提高程序的可擴(kuò)充性和可維護(hù)性,。以前
寫(xiě)的程序可以被后來(lái)程序調(diào)用不足為奇,現(xiàn)在寫(xiě)的程序(如callA方法)能調(diào)用以后寫(xiě)的程序(以后編寫(xiě)的
一個(gè)類A的子類,, 如類D)就了不起了,。
比如父類有一個(gè)方法fun1(),和fun2().fun2()調(diào)用了fun1(),但是如果fun1()在子類中被重寫(xiě)了之后,當(dāng)子
類調(diào)用父類的方法fun2()時(shí),,fun2()所調(diào)用的fun1()是被子類重寫(xiě)后的方法,,而不是父類的方法,,雖然
fun2()并沒(méi)有被子類重寫(xiě),。
7.要培養(yǎng)在catch中填寫(xiě)代碼的良好習(xí)慣,以便容易查出出錯(cuò)原因,。
8.拋出一個(gè)異常之后(throw ***Exception),,應(yīng)該進(jìn)行相應(yīng)的捕獲(catch)。
9.finally語(yǔ)句的作用:就是無(wú)論什么情況下都會(huì)執(zhí)行,。它和finally之外的普通語(yǔ)句的一點(diǎn)區(qū)別就是:如果
程序執(zhí)行普通語(yǔ)句之前要返回一個(gè)值(return),,那么普通語(yǔ)句就不會(huì)執(zhí)行,而finally繼續(xù)執(zhí)行,。還比如
在一個(gè)while循環(huán)里面,,如果用break跳出,后面的普通語(yǔ)句不會(huì)執(zhí)行,,但finally繼續(xù)執(zhí)行,。只有當(dāng)程序在
前邊進(jìn)行System.exit(*)的操作時(shí),finally才不會(huì)被執(zhí)行。
10.在jdk中如果臨時(shí)設(shè)置一個(gè)包,,而并沒(méi)有手動(dòng)在相應(yīng)目錄下設(shè)置文件夾時(shí),,可以在命令行中輸入javac -d
. ***.java。其中‘.’表示當(dāng)前目錄,,這樣系統(tǒng)就會(huì)自動(dòng)生成目錄,。
11.包不是由文件夾確定的,而是在程序用用package確定的,。也就是說(shuō),,如果程序中沒(méi)有package的指定,
那么即使把class文件放在幾層文件夾中,,程序也不會(huì)認(rèn)為是在包里,。
12.要經(jīng)常注意自己所運(yùn)行的類是否是自己期望的那個(gè)類。因?yàn)橄到y(tǒng)中可能還有其他同名的類,。
13.如果要訪問(wèn)其他包中的類,,那么該類的類型必須是public型的。
14.父包和子包在使用過(guò)程中是相對(duì)獨(dú)立的,,在引用父包的同時(shí)也必須引用子包,。如import
java.awt.event.*;import java.awt.*; 如果引入的兩個(gè)包中包含有相同的類,那么在使用類的過(guò)程中應(yīng)該
使用類的全名(如java.util.Date),。
15.如果找不到某個(gè)類,,分三步找:1.類名是否寫(xiě)錯(cuò) 2.是否引入了相關(guān)包名 3.查看classpath。
16.不用引入java.lang.*,,因?yàn)橄到y(tǒng)會(huì)默認(rèn)引用,。
17.類的修飾符只能是public或者缺省。
18.java的命名習(xí)慣:
包名: xxxyyyzzz
類名接口名:XxxYyyZzz
方法名:xxxYyyZzz
變量名 xxxYyyZzz
常量名:XXXYYYZZZ
19.我們常用的API中的類存放在jre->lib->rt.jar的目錄中,。
20.在生成jar包時(shí),,一定要注意目錄層次,有時(shí)候系統(tǒng)會(huì)自動(dòng)生成一個(gè)頂級(jí)目錄,,和我們以前的頂級(jí)目錄不
相同,,這樣的話即使在classpath中引入了相關(guān)路徑,系統(tǒng)還是找不到我們所想要的那個(gè)類,。
|