java构造器

在java中,初始化和创建时捆绑在一起的,两者不可分离,而初始化就是通过构造器来实现的。

简介一下构造器的格式:名称必须和类名完全相同,所以“java每个方法的首字母小写”的编程风格并不适合用于构造器。

构造器不能有以下非访问性质的修饰: abstract, final, native, static, 或者 synchronized。

下面主要说一下默认构造器:

直接那段代码来看:

 package chapterFour;


class Bird{

Bird(int i){}

Bird(double j){}

}

/**

 * @author 梁丞胤

 * 构造器

 */

public class Contructor {

/**

* 要是没有写构造器时,创建对象时编译器会认为“你没有构造器,那我就给你创建一个”

* Bird类已有了编写的构造器,在创建对象的时候如果是调用Bird()构造器,

* 编译器就会报错:没有找到匹配的构造器

* 这个因为你一旦写了一个构造器,编译器就会认为“你已写了构造器,所以你知道你在做什么

* ,你是刻意要忽略默认的bird()构造器的”,于是你在调用默认构造器创建对象的时候

* 编译器就会报错

*/

public static void main(String[] args) {

//所以在已写构造器的情况下,创建一个跟已有构造器参数不对应的对象时是会报错的

//Bird b1=new Bird();

Bird b2=new Bird(1);

Bird b3=new Bird(1.0);

}


}


所以在有自己编写构造器的类上面,如果要保留根据默认构造器创建对象的方式就必须要自己手动编写默认构造器。
2. 使用this在构造器中调用构造器
/**
 * @author 梁丞胤
 *
 * 2012-3-28
 */
public class Constructor2 {
Constructor2(int i){
System.out.println("~~~参数是~~~"+i);
}
/**
* 构造器可以调用自己的构造器,在多构造器的情况下,可以起到避免代码重复的作用
* 其他的方法则不可以使用构造器
*/
Constructor2(String a,int j){
this(j);
System.out.print("~~~构造器调用构造器~~~"+a);
}
public static void main(String[] args) {
Constructor2 cc=new Constructor2("hehe",6);
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值