Java构造函数

家住魔仙堡 提交于 2020-01-31 03:38:31

Java构造函数

-每个Java类都必须有构造函数,构造函数的名称必须和类名一样,且没有返回值
-一个类可以有多个构造函数,只要形参列表不相同即可。
-在new对象的时候,根据实参的不同, 自动挑选相应的构造函数。如果实参形参匹配不上,将会报错
-Java有构造函数是制造对象的过程,但是没有析构函数是清除对象的过程
-当变量被创建时,变量将占据内存;当变量消亡时,系统将回收内存
-如果没有显式定义构造函数,Java编译器自动为该类产生一个空的无形参构造函数。如果已经有了显式的有参构造函数,编译器就不会越俎代庖了。每个子类的构造函数的第一句话,都默认调用父类的无参数构造函数super(),除非子类的构造函数第一句话是super,而且super语句必须放在第一条,不会出现连续两条super语句

class MyPairNumber
{
	int m;
	int n;
	public MyPairNumber()
	{
		m = 0;
		n = 0;
	}
	public MyPairNumber(int a)
	{
		m = a;
		n = 0;
	}
	public MyPairNumber(int a, int b)
	{
		m = a;
		n = b;
	}	
}
public class ConstructorTest {

	public static void main(String[] args) {
		MyPairNumber obj1 = new MyPairNumber();
		MyPairNumber obj2 = new MyPairNumber(5);
		MyPairNumber obj3 = new MyPairNumber(10,20);
	}
}

类MyPairNumber有3个构造函数,无参的,有一个形参的int a,和有两个形参的int a,int b
当new一个对象时,根据提供的参数类型,自动选择上面的一个构造函数。
MyPairNumber obj1 = new MyPairNumber();选择上面没有形参的构造函数

	public MyPairNumber()
	{
		m = 0;
		n = 0;
	}

MyPairNumber obj3 = new MyPairNumber(10,20);选择上面有两个形参的构造函数

	public MyPairNumber(int a, int b)
	{
		m = a;
		n = b;
	}	
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!