【java】构造函数

什么时候自定义构造函数:当分析事物时,事物一存在就具备一些特征或者行为,那么就把这么内容定义在构造函数中

作用:对对象进行初始化,对象一建立,就会自动调用与之对应的构造函数

特点:

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);

	}
}

 构造函数和一般函数区别:

构造函数:对象一建立就运行,且只运行一次,给对象初始化。

一般函数:对象调用才能执行,可运行多次,给对象添加函数定义的功能。

默认构造函数权限:

一个类中默认会有一个空参数的构造函数。一般系统默认给,类中看不到(和自定义构造函数有别)。
默认构造函数的权限和所属类一致。

原文地址:https://www.cnblogs.com/paulwinflo/p/7885007.html