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编程考试中经常出现的一个考点。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
springboot+thymeleaf整合阿里云OOS对象存储图片的实现
本文主要介绍了springboot+thymeleaf整合阿里云OOS对象存储图片的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2022-05-05
Spring之InitializingBean接口和DisposableBean接口的使用
这篇文章主要介绍了Spring之InitializingBean接口和DisposableBean接口的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2024-01-01


最新评论