什么是构造方法
带参数的构造方法
[@more@]
1.3.1 什么是构造方法
在Java语言中,当创建一个对象时,需要对创建的对象做相应的初始化工作,例如分配内存地址给对象的属性,设定对象属性的初始值。这个工作是由Java中一种被称为“构造方法”的特殊方法来完成的。
在Java的每一个类中,都会提供一个构造方法。如果该类中我们没有定义构造方法,那么在该类中编译器会自动调用隐式构造方法。
构造方法的语法规则:
1、 方法名必须与类名相同
2、 没有返回类型,也不能写void。
实例7就给出了一个构造方法的示例,在这个构造方法中,为对象属性name、age赋予了初始值。
实例7
package org.hopetech.l01;
public class Employee4 {
private String name; // 员工姓名
private int age; // 员工年龄
public Employee4(){
this.name = "罗治国";
this.age = 30;
}
/**
* 员工进行自我介绍
*/
public void selfIntroduction() {
System.out.println("我是" + name + ",我今年有" + age + "岁了!");
}
}
对象不可以调用构造方法,构造方法是专门用来创建对象的。因此构造方法必须必由new关键字调用。例如:Employee4 employee = new Employee4();
如实例8所示,运行结果如图1.4所示。
实例8
package org.hopetech.l01;
public class Employee3Test {
public static void main(String[] args) {
//调用构造方法实例化员工类
Employee4 employee = new Employee4();
//调用员工自我介绍的方法
employee.selfIntroduction();
}
}
图1.4 实例8运行的结果
在实例化对象时,我们已经通过构造方法为实例对象属性赋了默认的初始值,完成了对象属性的实始化工作。
如果我们想显式地为实例对象属性赋初始值,也就是说,我们将类实例化多个对象,而每个对象的属性值都不是不同的。这个时候,我们需要使用到带参的构造方法。
带参数的构造方法可以在实例化对象时,通过构造方法传入参数初始化对象的属性。
实例9
package org.hopetech.l01;
public class Employee5 {
private String name; // 员工姓名
private int age; // 员工年龄
public Employee5(String name,int age){
this.name = name;
this.age = age;
}
/**
* 员工进行自我介绍
*/
public void selfIntroduction() {
System.out.println("我是" + name + ",我今年有" + age + "岁了!");
}
}
很明显,我们通过带参构造方法,显式的为Employee5员工类的各个实例属性赋予了初始值。
在使用带参构造方法实例化对象时,传递的值必须和构造方法的参数在个数、顺序和数据类型上完全匹配。如实例10所示,运行结果如图1.5
实例10
package org.hopetech.l01;
public class Employee5Test {
public static void main(String[] args) {
//使用带参构造方法实例化一个员工
Employee5 employee1 = new Employee5("李东",24);
Employee5 employee2 = new Employee5("罗治国",30);
//调用员工自我介绍的方法
employee1.selfIntroduction();
employee2.selfIntroduction();
}
}
图1.5 实例10运行的结果
通过调用带参构造方法,在创建对象的同时完成了对象属性的初始化工作,简化了对象初始化的操作。
在不同情况下,我们对类可能有不同的初始化行为。那么我们可能要编写多个构造方法,这种情况应该怎么样才能解决呢?我们下面将会学到一个重要概念:方法重载。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/16657027/viewspace-1041517/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/16657027/viewspace-1041517/