JAVA構(gòu)造函數(shù)不能使用void關(guā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ù)寫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)造方法前面是沒有任何返回符,不能加任何返回類型,包括void.一個(gè)構(gòu)造方法一旦加了void,那么這個(gè)就不是構(gòu)造方法了,變成了一個(gè)普通的方法。
至于你程序出現(xiàn)的情況,是這樣的。任何一個(gè)Java類,如果你不自己定義構(gòu)造方法,那么都有一個(gè)缺省的無參數(shù)的構(gòu)造方法。但是當(dāng)你定義了自己的構(gòu)造方法,那么缺省的構(gòu)造方法就沒有了。
當(dāng)你不加void的時(shí)候,表示你定義了一個(gè)有兩個(gè)參數(shù)的構(gòu)造方法,first(int a,int b),而你在實(shí)例類的時(shí)候,卻t=new first(); 但是找不到這個(gè)類的無參數(shù)構(gòu)造方法,所以就出錯(cuò)了。
當(dāng)你加void的時(shí)候void first(int a,int b),就變成了你類的一個(gè)方法,這時(shí)候你沒有為類自定義任何一個(gè)構(gòu)造方法,所以系統(tǒng)為你分配一個(gè)缺省的無參數(shù)構(gòu)造方法,在實(shí)例類的時(shí)候,就可以使用t=new first();
解決這個(gè)問題
你可以自己填寫一個(gè)無參數(shù)構(gòu)造方法
public first(int a,int b){
...
}
public first(){
...
}也可以,在實(shí)例類的時(shí)候,不要使用無參數(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讀取Properties文件的七種方法的總結(jié)
這篇文章主要介紹了Java讀取Properties文件的七種方法的總結(jié)的相關(guān)資料,需要的朋友可以參考下2017-07-07
Java空指針異常NullPointerException的原因與解決方案
在Java開發(fā)中,NullPointerException(空指針異常)是最常見的運(yùn)行時(shí)異常之一,通常發(fā)生在程序嘗試訪問或操作一個(gè)為null的對(duì)象引用時(shí),這種異常不僅會(huì)導(dǎo)致程序崩潰,還會(huì)增加調(diào)試難度,所以本文系統(tǒng)梳理NullPointerException的成因、調(diào)試方法和避免策略2025-06-06
超詳細(xì)的Spring Boot入門筆記(總結(jié))
本篇文章主要介紹了超詳細(xì)的Spring Boot入門筆記(總結(jié)),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-11-11
Spring MVC接口防數(shù)據(jù)篡改和重復(fù)提交
這篇文章主要為大家詳細(xì)介紹了Spring MVC接口防數(shù)據(jù)篡改和重復(fù)提交,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-08-08
SpringBoot項(xiàng)目中各層的關(guān)系及作用說明
文章主要介紹了SpringBoot架構(gòu)的七層結(jié)構(gòu):Controller層、Service層、Dao層、Entity層、Configuration層、Utils層,以及如何通過這些層進(jìn)行業(yè)務(wù)邏輯處理和數(shù)據(jù)交互2026-03-03

