1.函数名和类名相同
2.不用定义返回值类型
(注意:void为一种返回值类型,注意区别)
3.不可以写return语句
作用:
给对象进行初始化,即对象一建立就调用与之对应的构造函数
(注意:用创建对象时的参数来区分具体调用哪个构造函数)
注意:
1、默认构造函数,当一个类中没有定义构造函数时,系统会默认给该类加入一个空参数的构造函数,如果自定 义了了构造函数,则系统不加默认的构造函数
2、多个构造函数是以重载(函数名相同,参数列表不一致)的形式存在的。
class Person
{
private String name;
private int age;
Person()
{
System.out.println("name="+name+";age="+age);
}
Person(String name)
{
this.name = name;//this关键字指代本类对象
System.out.println("name="+name+";age="+age);
}
Person(String name,int age)
{
this.name = name;
this.age = age;
System.out.println("name="+name+";age="+age);
}
}
class PersonDemo
{
public static void main(String[] args)
{
Person p1 = new Person();
Person p2 = new Person("lisi");
Person p3 = new Person("wangwu",1);
}
}
输出结果:
name=null;age=0
name=lisi;age=0
name=wangwu;age=1
lass Person
{
private String name;
private int age;
Person(String name)
{
this.name = name;//this关键字指代本类对象
System.out.println("name="+name+";age="+age);
}
}
class PersonDemo
{
public static void main(String[] args)
{
Person p1 = new Person();
}
}
编译后提示如下:
错误: 无法将类 Person中的构造器 Person应用到给定类型;
<pre name="code" class="java">class Person
{
private String name;
private int age;
//构造代码块
{
System.out.println("Person run");
}
Person(String name,int age)//构造函数
{
this.name = name;
this.age = age;
System.out.println("name="+name+";age="+age);
}
}
class PersonDemo
{
public static void main(String[] args)
{
Person p3 = new Person("wangwu",1);
}
}
作用:在创建对象给时就执行,而且优先于构造函数执行,是给所有对象进行统一初始化
小结:
1、构造函数和一般方法的区别
构造函数:在对象一建立就运行,给对象初始化,一个对象建立,构造函数只运行一次一般方法:通过对象调用才执行,是给对象添加对象具备的功能,构造函数可以被对象多次调用
2、构造函数的应用:当创建对象时,该对象就具备一些特性和特有方法,
则将这些特性属性和特有方法定义在构造函数中
3、构造函数和构造代码块的区别:
构造函数:给对应的对象进行初始化
构造代码块:给不同对象初始化共性的内容
4、构造函数为类中成员,所以可以被private修饰