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