JAVA構(gòu)造函數(shù)不能使用void關(guān)鍵字問(wèn)題
JAVA構(gòu)造函數(shù)不能使用void關(guān)鍵字
Java 函數(shù)的構(gòu)造函數(shù)一般不返回值,所以新手容易添加void關(guān)鍵字,這時(shí)候編譯器容易報(bào)錯(cuò)
java.lang.NullPointerException
這是因?yàn)闃?gòu)造函數(shù)代表的函數(shù)子函數(shù)可能會(huì)有返回值,系統(tǒng)就不讓在早期構(gòu)造函數(shù)寫(xiě)void。
public class testMap { //這里的void就會(huì)引起報(bào)錯(cuò)!?。。。。。。?! public **void** testMap() { } public void testPut() { } void foreach() { } public static void main(String[] args) { testMap tp=new testMap(); tp.testPut (); tp.foreach(); } }
JAVA構(gòu)造方法前加void有什么作用
構(gòu)造方法前面是沒(méi)有任何返回符,不能加任何返回類型,包括void.一個(gè)構(gòu)造方法一旦加了void,那么這個(gè)就不是構(gòu)造方法了,變成了一個(gè)普通的方法。
至于你程序出現(xiàn)的情況,是這樣的。任何一個(gè)Java類,如果你不自己定義構(gòu)造方法,那么都有一個(gè)缺省的無(wú)參數(shù)的構(gòu)造方法。但是當(dāng)你定義了自己的構(gòu)造方法,那么缺省的構(gòu)造方法就沒(méi)有了。
當(dāng)你不加void的時(shí)候,表示你定義了一個(gè)有兩個(gè)參數(shù)的構(gòu)造方法,first(int a,int b),而你在實(shí)例類的時(shí)候,卻t=new first(); 但是找不到這個(gè)類的無(wú)參數(shù)構(gòu)造方法,所以就出錯(cuò)了。
當(dāng)你加void的時(shí)候void first(int a,int b),就變成了你類的一個(gè)方法,這時(shí)候你沒(méi)有為類自定義任何一個(gè)構(gòu)造方法,所以系統(tǒng)為你分配一個(gè)缺省的無(wú)參數(shù)構(gòu)造方法,在實(shí)例類的時(shí)候,就可以使用t=new first();
解決這個(gè)問(wèn)題
你可以自己填寫(xiě)一個(gè)無(wú)參數(shù)構(gòu)造方法
public first(int a,int b){ ... } public first(){ ... }
也可以,在實(shí)例類的時(shí)候,不要使用無(wú)參數(shù)的構(gòu)造方法,使用t=new first(3,2);
btw:構(gòu)造方法前面加void就變成了成員方法,這是Java編程考試中經(jīng)常出現(xiàn)的一個(gè)考點(diǎn)。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java如何向主函數(shù)main中傳入?yún)?shù)
這篇文章主要介紹了Java如何向主函數(shù)main中傳入?yún)?shù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02Spring自帶的校驗(yàn)框架Validation的使用實(shí)例
今天小編就為大家分享一篇關(guān)于Spring自帶的校驗(yàn)框架Validation的使用實(shí)例,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-03-03springboot+thymeleaf整合阿里云OOS對(duì)象存儲(chǔ)圖片的實(shí)現(xiàn)
本文主要介紹了springboot+thymeleaf整合阿里云OOS對(duì)象存儲(chǔ)圖片的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-05-05Spring之InitializingBean接口和DisposableBean接口的使用
這篇文章主要介紹了Spring之InitializingBean接口和DisposableBean接口的使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01java實(shí)現(xiàn)統(tǒng)一異常處理的示例
一個(gè)全局異常處理類需要處理三類異常1.業(yè)務(wù)類異常,2.運(yùn)行時(shí)異常 ,3.Error,本文給大家介紹java實(shí)現(xiàn)統(tǒng)一異常處理的示例,感興趣的朋友一起看看吧2021-06-06