构造函数浅简介:
Java为类的成员变量赋初值提供了一套特殊的成员方法。叫构造函数。
特性:
1,构造函数与类名相同。
2,构造方法总是与new 一起被调用。
3,构造方法不返回任何值,也没有返回类型(包括void类型)。
4,每个类可以有0个或者多个构造方法,构造方法可以重载。
5,构造方法在创建对象之后自动执行,一般不能显示地直接调用。
6,如果用户未定义任何构造方法,编译器会自动的构造一个默认构造函数。
示例
运行结果:
解析:当创建new的时候,会自动调用默认构造函数,当自己写了默认构造函数的时候,会调用自己写的构造函数。
自己可以在里面进行一系列初始化工作。
但是问题来了
当自己没有写默认构造函数的时候,就是把上面那个无参的注释掉后,就会出现这样。
上面提示,这样的构造未定义,那为什么呢?编译器不是会自动调用默认构造函数的吗?
其实是这样的:
当类里面没有默认构造函数的时候,编译器就会自动调用默认构造函数,但是当你写了其他的构造函数,没有写默认的时候,它就不会调用默认构造的了,就会调用自己写的重载的构造函数,它就会提示没有那样的构造函数。所以,一般当自己写了重载构造函数的时候,当需要调用类似于new Student()这样的函数的时候,自己就必须要默认构造也要加上。