什么时候自定义构造函数:当分析事物时,事物一存在就具备一些特征或者行为,那么就把这么内容定义在构造函数中
作用:对对象进行初始化,对象一建立,就会自动调用与之对应的构造函数
特点:
1.函数名和类名相同
2.不用定义返回值类型(不等同于void)
3.不可以写return语句
4.当一个类没有定义构造函数,系统会默认给该类加入一个空参数的构造函数;若定义了构造函数,默认的构造函数会失效
注意:
多个构造函数以重载形式存在
class People
{
private int age;
private String name;
/*
{
cry();
}为构造代码块。
作用:给所有对象进行统一的初始化。
构造代码块和构造函数区别:
构造代码块:对象一建立就运行,且优先于构造函数执行,给所有对象初始化,定义的是不同对象共性初始化内容
构造函数:给对应的对象初始化
*/
{
cry();
}
People()//构造函数1
{
System.out.println("myname is "+name+" age is "+age);
}
People(String mingzi,int nianling)//构造函数2,相当于构造函数1的重载
{
name=mingzi;
age=nianling;
System.out.println("myname is "+name+", age is "+age);
}
public void cry()
{
System.out.println("wuuwuwuwuwuwuw");
}
}
class PeopleDemo
{
public static void main(String[] args)
{
/*对象一建立就会调用与之对用的构造函数进行初始化
当一个类没有定义构造函数,系统会默认给该类加入一个空参数的构造函数
若定义了构造函数,默认的构造函数会失效*/
//根据参数列表不同,调取相应的重载函数
People p1=new People();
People p2=new People("zhang san",18);
}
}
构造函数和一般函数区别:
构造函数:对象一建立就运行,且只运行一次,给对象初始化。
一般函数:对象调用才能执行,可运行多次,给对象添加函数定义的功能。
默认构造函数权限:
一个类中默认会有一个空参数的构造函数。一般系统默认给,类中看不到(和自定义构造函数有别)。
默认构造函数的权限和所属类一致。