構造函數(shù)是一種特殊的方法。主要用來在創(chuàng)建對象時初始化對象,也就是為對象成員變量賦初始值,那java構造函數(shù)可以拋出異常嗎?下面來我們就來給大家講解一下。
是的,構造函數(shù)可以拋出異常。通常這意味著新對象立即有資格進行垃圾收集(當然,它可能在一段時間內不會被收集)。如果它在構造函數(shù)中早先可見(例如,通過指定靜態(tài)字段或將其自身添加到集合中),那么“半構造”對象可能會留下來。關于在構造函數(shù)中拋出異常要注意的一件事:因為調用者(通常)無法使用新對象,構造函數(shù)應該小心避免獲取非托管資源(文件句柄等)然后拋出異常沒有釋放它們。
例如,如果構造函數(shù)嘗試打開a FileInputStream和a FileOutputStream,并且第一個成功但第二個失敗,則應嘗試關閉第一個流。如果它是拋出異常的子類構造函數(shù),這會變得更難,當然這一切都變得有點棘手。這不是經常出現(xiàn)的問題,但值得考慮。
java構造函數(shù)有什么特點?
1. 構造函數(shù)的主要作用是完成對象的初始化工作,(如果寫的類里面沒有構造函數(shù),那么編譯器會默認加上一個無參數(shù)且方法體為空的構造函數(shù)).它能夠把定義對象時的參數(shù)傳給對象的域。意即當創(chuàng)建一個對象時,這個對象就被初始化.如果這時構造函數(shù)不為空,則會在創(chuàng)建對象時就執(zhí)行構造函數(shù)里面的代碼:
2. 構造函數(shù)的名稱必須與類名相同,包括大小寫;
3. 構造函數(shù)沒有返回值,也不能用void修飾. 如果不小心給構造函數(shù)前面添加了返回值類型,那么這將使這個構造函數(shù)變成一個普通的方法,在運行時將產生找不到構造方法的錯誤。
4. 一個類可以定義多個構造方法,如果在定義類時沒有定義構造方法,則編譯系統(tǒng)會自動插入一個無參數(shù)的默認構造器,這個構造器不執(zhí)行任何代碼。
5. 構造方法可以重載,以參數(shù)的個數(shù),類型,順序。
構造函數(shù)可以用來生成并初始化對象,可以通過函數(shù)的重寫給對象賦初始值,簡化代碼,最后大家如果想要了解更多初識java知識,敬請關注賦能網。
本文鏈接:
本文章“java構造函數(shù)可以拋出異常嗎?java構造函數(shù)有什么特點?”已幫助 67 人
免責聲明:本信息由用戶發(fā)布,本站不承擔本信息引起的任何交易及知識產權侵權的法律責任!
本文由賦能網 整理發(fā)布。了解更多培訓機構》培訓課程》學習資訊》課程優(yōu)惠》課程開班》學校地址等機構信息,可以留下您的聯(lián)系方式,讓課程老師跟你詳細解答:
咨詢熱線:4008-569-579