在前面的文章中,我已经提到过,使用java语言编程主要是依靠类与对象来实现目的,在类的定义中,存在一种特殊的方法——构造函数(又称构造器或构造函数)。

构造函数和我们所定义的方法的区别在于:

1、构造方法的名称和类名完全相同。

2、构造方法在定义时没有声明返回值类型。

构造方法的作用:它可以用来构造出一个类的实例并且也可以用来实现对成员对象属性的初始化功能。

实际上在使用new关键字实例化对象时,最先被执行的就是构造方法,如果本身没有定义构造方法,那么系统会提供一个无参数的默认的构造方法。当一个类声明了构造方法后系统就不会再提供默认的构造方法。构造方法和其他的方法一样,也可以实现重载,其实现重载的条件和其他方法也一样,当需要对实例化的对象赋以不同的初始属性时,可以使用构造方法的重载。

对方法的重载需要注意以下几点:

1、所写的几个方法必须在同一个类中。

2、它们的方法名称必须相同。

3、方法参数个数或参数类型或参数类型顺序不同。(需要注意的是方法重载与访问权限修饰符和方法的返回值类型无关)

下面通过一个Student类简单例子来说明构造方法的使用:

 

java中构造函数和构造方法一样吗 java构造和方法区别_构造函数

java中构造函数和构造方法一样吗 java构造和方法区别_java中构造函数和构造方法一样吗_02

 

 

输出结果:

         

java中构造函数和构造方法一样吗 java构造和方法区别_this关键字_03

 

Java语言提供了一个this关键字,它可以近似理解为我们汉语中的“我”

当在一个类中要明确指出使用对象自己的的变量或函数时就应该加上this引用,可以用来减少我们所定义的变量名,使代码更简洁。其中加上this的表示属性名,没有加的则表示参数名。this关键字可以用来调用构造方法以防没有给属性赋值

 

可以用this对上面的代码进行优化:

 

java中构造函数和构造方法一样吗 java构造和方法区别_java中构造函数和构造方法一样吗_04

java中构造函数和构造方法一样吗 java构造和方法区别_构造函数_05

 

输出结果:

 

java中构造函数和构造方法一样吗 java构造和方法区别_this关键字_06