这篇文章给大家分享的是有关在Java语言中什么是构造方法的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
什么是构造方法
带参数的构造方法
在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
package org.hopetech.l01;
public class Employee3Test {
public static void main(String[] args) {
//调用构造方法实例化员工类
Employee4 employee = new Employee4();
//调用员工自我介绍的方法
employee.selfIntroduction();
}
}
在实例化对象时,我们已经通过构造方法为实例对象属性赋了默认的初始值,完成了对象属性的实始化工作。
如果我们想显式地为实例对象属性赋初始值,也就是说,我们将类实例化多个对象,而每个对象的属性值都不是不同的。这个时候,我们需要使用到带参的构造方法。
带参数的构造方法可以在实例化对象时,通过构造方法传入参数初始化对象的属性。
实例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
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();
}
}
通过调用带参构造方法,在创建对象的同时完成了对象属性的初始化工作,简化了对象初始化的操作。
在不同情况下,我们对类可能有不同的初始化行为。那么我们可能要编写多个构造方法,这种情况应该怎么样才能解决呢?我们下面将会学到一个重要概念:方法重载。
感谢各位的阅读!关于“在Java语言中什么是构造方法”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。