什么时候自定义构造函数:当分析事物时,事物一存在就具备一些特征或者行为,那么就把这么内容定义在构造函数中
作用:对对象进行初始化,对象一建立,就会自动调用与之对应的构造函数
特点:
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); } }
构造函数和一般函数区别:
构造函数:对象一建立就运行,且只运行一次,给对象初始化。
一般函数:对象调用才能执行,可运行多次,给对象添加函数定义的功能。
默认构造函数权限:
一个类中默认会有一个空参数的构造函数。一般系统默认给,类中看不到(和自定义构造函数有别)。
默认构造函数的权限和所属类一致。