java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > java构造函数不能使用void

JAVA构造函数不能使用void关键字问题

作者:大牛在路上

这篇文章主要介绍了JAVA构造函数不能使用void关键字问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

JAVA构造函数不能使用void关键字

Java 函数的构造函数一般不返回值,所以新手容易添加void关键字,这时候编译器容易报错

java.lang.NullPointerException

这是因为构造函数代表的函数子函数可能会有返回值,系统就不让在早期构造函数写void。

public class testMap {
	
   //这里的void就会引起报错!!!!!!!!!
  public **void** testMap() {
	
	}
  
  public void testPut() {
		
	}
  void foreach() {

	  }
 
	public static void main(String[] args) {
		testMap tp=new testMap();
		tp.testPut ();
		tp.foreach();

	}

}

JAVA构造方法前加void有什么作用

构造方法前面是没有任何返回符,不能加任何返回类型,包括void.一个构造方法一旦加了void,那么这个就不是构造方法了,变成了一个普通的方法。

至于你程序出现的情况,是这样的。任何一个Java类,如果你不自己定义构造方法,那么都有一个缺省的无参数的构造方法。但是当你定义了自己的构造方法,那么缺省的构造方法就没有了。

当你不加void的时候,表示你定义了一个有两个参数的构造方法,first(int a,int b),而你在实例类的时候,却t=new first(); 但是找不到这个类的无参数构造方法,所以就出错了。

当你加void的时候void first(int a,int b),就变成了你类的一个方法,这时候你没有为类自定义任何一个构造方法,所以系统为你分配一个缺省的无参数构造方法,在实例类的时候,就可以使用t=new first(); 

解决这个问题

你可以自己填写一个无参数构造方法

public first(int a,int b){
   ...
}
public first(){
   ...
}

也可以,在实例类的时候,不要使用无参数的构造方法,使用t=new first(3,2);

btw:构造方法前面加void就变成了成员方法,这是Java编程考试中经常出现的一个考点。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文