构造函数是一种特殊的方法。主要用来在创建对象时初始化对象,也就是为对象成员变量赋初始值,那java构造函数可以抛出异常吗?下面来我们就来给大家讲解一下。
是的,构造函数可以抛出异常。通常这意味着新对象立即有资格进行垃圾收集(当然,它可能在一段时间内不会被收集)。如果它在构造函数中早先可见(例如,通过指定静态字段或将其自身添加到集合中),那么“半构造”对象可能会留下来。关于在构造函数中抛出异常要注意的一件事:因为调用者(通常)无法使用新对象,构造函数应该小心避免获取非托管资源(文件句柄等)然后抛出异常没有释放它们。
例如,如果构造函数尝试打开a FileInputStream和a FileOutputStream,并且第一个成功但第二个失败,则应尝试关闭第一个流。如果它是抛出异常的子类构造函数,这会变得更难,当然这一切都变得有点棘手。这不是经常出现的问题,但值得考虑。
java构造函数有什么特点?
1. 构造函数的主要作用是完成对象的初始化工作,(如果写的类里面没有构造函数,那么编译器会默认加上一个无参数且方法体为空的构造函数).它能够把定义对象时的参数传给对象的域。意即当创建一个对象时,这个对象就被初始化.如果这时构造函数不为空,则会在创建对象时就执行构造函数里面的代码:
2. 构造函数的名称必须与类名相同,包括大小写;
3. 构造函数没有返回值,也不能用void修饰. 如果不小心给构造函数前面添加了返回值类型,那么这将使这个构造函数变成一个普通的方法,在运行时将产生找不到构造方法的错误。
4. 一个类可以定义多个构造方法,如果在定义类时没有定义构造方法,则编译系统会自动插入一个无参数的默认构造器,这个构造器不执行任何代码。
5. 构造方法可以重载,以参数的个数,类型,顺序。
构造函数可以用来生成并初始化对象,可以通过函数的重写给对象赋初始值,简化代码,最后大家如果想要了解更多初识java知识,敬请关注赋能网。