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