首页 理论教育 Java程序设计教程:构造方法

Java程序设计教程:构造方法

时间:2023-11-16 理论教育 版权反馈
【摘要】:什么是构造方法呢?每个类都有构造方法。在一个类中定义的方法如果同时满足以下三个条件,该方法就被称为构造方法,具体如下:方法名与类名相同。文件4-18Example18.java执行结果无参的构造方法被调用了……接下来通过改写后的代码建立一个有参构造方法。因此,为了方便实例化对象,构造方法通常会使用public 来修饰。

Java程序设计教程:构造方法

什么是构造方法呢?在回答这个问题之前,先来看一个需求:前面在创建人类的对象时,是先把一个对象创建好后,再给其年龄和姓名属性赋值,如果现在要求在创建人类的对象时,就直接指定这个对象的年龄和姓名,该怎么做?可以在定义类的时候,定义一个构造方法即可。每个类都有构造方法。如果没有显式地为类定义构造方法,Java 编译器将会为该类提供一个默认构造方法。

1. 构造方法的定义

构造方法是类的一种特殊的方法,它的主要作用是完成对新对象的初始化。在一个类中定义的方法如果同时满足以下三个条件,该方法就被称为构造方法,具体如下:

(1)方法名与类名相同。

(2)在方法名的前面没有返回值类型的声明。

(3)在方法中不能使用return 语句返回一个值,但是可以单独写return 语句来作为方法的结束。

在创建一个类的新对象时,系统会自动调用该类的构造方法完成对新对象的初始化。

2. 类的默认构造方法

有些同学可能会问:在没有学习构造函数前不是也可以创建对象吗?是这样的,如果程序员没有定义构造方法,系统会自动生成一个默认构造方法,比如Person 类“Person(){}”;当创建一个Person 对象时,“Person per1=new Person();”默认的构造函数就会被自动调用。

每一个类都至少有一个构造函数,如果在定义类时,没有显式地声明任何构造函数,系统会自动为这个类创建一个无参的构造函数,里面没有任何代码。

在定义构造方法时,如果没有特殊需要,都应该使用public 关键字修饰。

在创建一个对象的时候,至少要调用一个构造方法。构造方法的名称必须与类同名,一个类可以有多个构造方法。下面是一个构造方法的示例。

接下来通过一个案例来演示如何在类中定义构造方法。

【例4.18】下面通过一个案例演示一个无参构造方法的调用,如文件4-18 所示。

文件4-18 Example18.java

执行结果

无参的构造方法被调用了……

在一个类中除了定义无参的构造方法,还可以定义有参的构造方法,通过有参的构造方法就可以实现对属性的赋值。接下来通过改写【例4.8】后的代码建立一个有参构造方法。

【例4.19】下面通过一个案例演示建立一个有参构造方法的调用,如文件4-19 所示。

文件4-19 Example19.java(www.xing528.com)

执行结果

今年我已经20 岁了!

由于参数不同,调用的构造方法就不同,用下例进行说明。

【例4.20】编写一个带有不同参数个数的构造方法,实现调用时,由于给予不同的初始值,调用的构造方法不同,如文件4-20 所示。

文件4-20 Example20.java

执行结果

我是构造方法1

演示证明,调用的构造方法是构造方法1。

注意:

(1)在Java 中的每个类都至少有一个构造方法,如果在一个类中没有显示地定义构造方法,系统会自动为这个类创建一个默认的无参构造方法。

在上面的第一种写法,类中没有显示地声明构造方法,但仍然可以用new Person()语句来创建Person 类的实例对象。由于系统提供的无参构造方法往往不能满足需求,因此,可以自己在类中定义构造方法,一旦为该类定义了构造方法,系统将不再提供默认的无参构造方法。

(2)声明构造方法时,被private 访问控制符修饰的构造方法Person(int)只能在当前Person类中被访问无法在类的外部被访问,无法通过该私有构造方法来创建对象。因此,为了方便实例化对象,构造方法通常会使用public 来修饰。

类的构造方法小结:

① 构造方法名和类名相同;

② 构造方法没有返回值;

③ 主要作用是完成对新对象的初始化;

④ 在创建新对象时,系统自动地调用该类的构造方法;

⑤ 一个类可以有多个构造方法;

⑥ 每个类都有一个默认的构造方法。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈