面向对象之构造函数

构造函数浅简介:

Java为类的成员变量赋初值提供了一套特殊的成员方法。叫构造函数。

特性:

1,构造函数与类名相同。

2,构造方法总是与new 一起被调用。

3,构造方法不返回任何值,也没有返回类型(包括void类型)。

4,每个类可以有0个或者多个构造方法,构造方法可以重载。

5,构造方法在创建对象之后自动执行,一般不能显示地直接调用。

6,如果用户未定义任何构造方法,编译器会自动的构造一个默认构造函数。

 示例



运行结果:


解析:当创建new的时候,会自动调用默认构造函数,当自己写了默认构造函数的时候,会调用自己写的构造函数。

自己可以在里面进行一系列初始化工作。

但是问题来了


当自己没有写默认构造函数的时候,就是把上面那个无参的注释掉后,就会出现这样。


上面提示,这样的构造未定义,那为什么呢?编译器不是会自动调用默认构造函数的吗?

其实是这样的:

当类里面没有默认构造函数的时候,编译器就会自动调用默认构造函数,但是当你写了其他的构造函数,没有写默认的时候,它就不会调用默认构造的了,就会调用自己写的重载的构造函数,它就会提示没有那样的构造函数。所以,一般当自己写了重载构造函数的时候,当需要调用类似于new Student()这样的函数的时候,自己就必须要默认构造也要加上。

猜你喜欢

转载自blog.csdn.net/goforitaaa/article/details/80791408
今日推荐