Java:构造方法

为什么需要构造方法?

public class Teacher {
	
	int age; // 年龄
	String name; // 姓名
	String position; // 职位
	String education; // 学历

	public String introduction() {
		return "大家好!我是" + name + ",我今年" + age + "岁,学历" + education + ",目前职位是" + position;
	}
}

编写一个测试类,实例化一个教师对象,并对其初始化,在控制台输出该教员的自我介绍

代码:

public class Test {
	
	public static void main(String[] args) {
		Teacher teacher = new Teacher();
		teacher.name = "李雯";
		teacher.age = 36;
		teacher.education = "博士";
		System.out.println(teacher.introduction());
	}
}

 Teacher类中有太多的属性,每次给属性赋值时非常麻烦:编码量大,无法重用给属性赋值的代码。

运行结果:

大家好!我是李雯,我今年36岁,学历博士,目前职位是null

 

什么是构造方法? 

 1.构造方法负责初始化类中的实例变量。(非“类变量”)

 2.构造方法是一种特殊的方法,这种方法必须满足以下语法规则:构造方法必须与类名相同;不包含返回值类型描述部分。

 3.构造方法不能有static和final关键字修饰。

 

如何使用构造方法?

使用new关键字调用构造方法,即构造方法(非“类变量”)在创建对象(也称对象实例化)时被调用。

代码:

public class  TeacherTest {
    public static void main(String[ ] args) {
	    Teacher  teacher = new Teacher(); //创建Teacher对象
    }
}

由于Teacher类没有显式构造方法,这时Teacher类就会有一个默认的无参构造方法。

 

显示构造方法

1.创建类时,如果没有显式定义构造方法,则该类会存在一个默认的无参构造方法; 

2.可以在类中声明一个或多个有参构造方法,但每个构造方法在参数个数或参数数据类型上要有所差别:

3.如果类中存在显式构造方法,则默认的无参构造方法将不复存在,除非显式定义无参构造方法:

由于Student类中显式定义了构造方法,这时该类中默认无参构造方法就没有了,所以使用new Student()创建对象就会出错。

显式定义无参构造方法。

 

类中构造方法间的调用

1.类中可以有多个构造方法,构造方法之间可以通过this实现调用,但必须将调用构造函数代码写在有效代码的第一行:

由于没有将调用构造方法的代码放在有效代码的第一行,所以出错,正确代码如下图所示。 

2.普通方法不能使用this调用类中构造方法,例如: 

普通方法printInfo试图调用构造方法Student(String name),但由于构造方法不能在普通方法中调用,所以出错。 


 

 

posted @ 2018-08-23 20:48  龙雪  阅读(138)  评论(0编辑  收藏  举报