`
lcy0202
  • 浏览: 176447 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

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

}

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics