Java构造方法

构造方法
⼀种特殊的方法。
创建对象时用来初始化对象,每次使用new 创建对象的时候,就会使用构造方法。
与类具有相同的名称,但是没有返回值,Java会⾃动为每个类提供⼀个默认构造方法。
如果自己定义了构造方法,就不再使用默认构造方法,如果没有显示的写出默认构造方法, 则会消失
可以有多个构造方法,只要参数不同就可以。
构造方法之间可以相互调用,使用this(参数);
如果构造函数之间互相调用,务必写在方法第一行。且不可以递归调用
(C/C++中叫函数,Java中叫方法,作用是一样的。)
(Java中没有析构函数,由虚拟机回收死亡对象。)

自己不定义构造方法,系统自动生成一个默认的空的构造方法。

class A{}
public class B {
	public static void main(String [] args)
	{
		A a = new A();
	}
}

自己定义构造方法,系统不会再生成构造方法。

class A {
	private int x;
	private int y;
	public A(int x){
		this.x = x;
	}
	public A(int x, int y){
		this(x);//可以互相调用,但不能形成闭环。
		this.y = y;
	}
}
public class B {
	public static void main(String [] args)
	{
		A a = new A();//报错,Cannot resolve constructor 'A()',没有定义无参构造方法。
		A a1 = new A(1);
		A a2 = new A(1,2);
	}
}

构造函数的修饰符
public 用的最多,用来创建对象。
private 私有化构造函数,不给外部创建对象,比如⼯具类,或者单例设计模式。
default 默认的话,只能在当前包里面使用new 创建对象,几乎不用。

单例模式:

class A {
     private static A a = new A();
     private A(){}//私有构造方法。
     public static A getA() {
         return a;
     }
}
public class B {
	public static void main(String [] args)
	{
		A a = new A();//报错,'A()' has private access in'A',私有访问权限。
		
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值