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