一、基础概念
1.什么时候定义构造函数:
当对象创建时,需要对象必须具备的内容,通过构造函数完成。
2.一般函数和构造函数的区别:
定义上:构造函数只为对象的初始化,只执行一次。一般函数定义对象应该具备的功能。可以被调用多次。
运行上:构造函数在对象一创建,就会执行。一般函数是只有被对象调用才执行。
3.构造函数的格式要求:
(1). 函数名和类名相同。
(2). 没有返回值类型。
(3). 没有具体的返回值。
4.构造函数的作用:就是对对象进行初始化。
5.揭秘:
(1). class定义的类中,如果没有声明任何构造函数,类中会默认有一个空参数的构造函数。
(2). 如果在class类中自定义了构造函数,默认的构造函数就没有了。构造函数在类中有多个的情况下,是以重载的形式存在的。
6.注意:
(1). 构造函数中也可以有return语句,用于结束初始化动作。
(2). 构造函数的前面加了void,编译可以通过,但是不再是构造函数,而是一般函数。(建议不要这样写)
二、实例代码
要求用构造函数的重载来实现,Person对象一旦建立就可能有一个公共的名字,或者有一个自己的名字,或者有一个自己的名字和年龄。并打印出来。
1 classPerson2 {3 privateString name;4 private intage;5
6 //多个构造函数在同一个Person类中的重载形式7
8 //定义一个构造函数,用于给Person对象初始化。9 //Person 对象初始化就有姓名。
10 Person(String s)11 {12 name =s;13 }14 //Person 对象初始化就有姓名和年龄。
15 Person (String s,inta)16 {17 name =s;18 age =a;19 }20 //Person 对象初始化什么也没有,构造一个空参的构造函数。
21 Person ()22 {23 name = "bady";24 }25
26 public voidshow1()27 {28 System.out.println("name="+name);29 }30 public voidshow2()31 {32 System.out.println("name="+name+",age="+age);33 }34 }35
36
37 classPersonDemo238 {39
40 public static voidmain (String[] args)41 {42 //对象会自动调用对应的构造函数,进行初始化。
43 Person p1 = new Person("xiaoming");44 p1.show1();45 Person p2 = new Person("xiangming",20);46 p2.show2();47 Person p3 = newPerson();48 p3.show1();49 }50 }
三、代码运行