JAVA_ 初始化与清理_默认构造器_搬砖自Think in Java_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > JAVA_ 初始化与清理_默认构造器_搬砖自Think in Java

JAVA_ 初始化与清理_默认构造器_搬砖自Think in Java

 2013/10/4 15:41:11  duanfyou  程序员俱乐部  我要评论(0)
  • 摘要:本篇介绍下Java中的默认构造器,接上一篇文章。如前所述,默认构造器(又名“无参”构造器)是没有形式参数的——它的作用是创建一个“默认对象”。如果你写的类没有构造器,则编译器会自动帮你创建一个默认构造器。例如://:初始化之默认构造器classBird{}publicclassDefaultConstructor{publicstaticvoidmain(String[]args){Birdb=newBird();//这里就调用了Bird类的默认构造器}}在上面的例子代码中
  • 标签:构造 Java 构造器

本篇介绍下Java中的默认构造器,接上一篇文章。

?

? ? 如前所述,默认构造器(又名“无参”构造器)是没有形式参数的——它的作用是创建一个“默认对象”。如果你写的类没有构造器,则编译器会自动帮你创建一个默认构造器。例如:

class="java" name="code">//: 初始化之默认构造器

class Bird {}

public class DefaultConstructor {
	public static void main(String[] args) {
		Bird b = new Bird(); // 这里就调用了Bird类的默认构造器
	}
}

? ? 在上面的例子代码中,表达式new Bird();这一行创建了一个新对象,并调用其默认构造器——即使你没有明确定义它。没有它(构造器)的话,就没有方法可以调用,就无法创建对象。但是,如果已经定义 了一个构造器(无论是否有参数),编译器就不会帮你自动创建默认构造器了:

//: 初始化之默认构造器

class Bird {
	Bird (int i) {}
	Bird (double d) {}
}

public class DefaultConstructor {
	public static void main(String[] args) {
		// Bird b = new Bird(); // 这里就调用了Bird类的默认构造器
		Bird b = new Bird(1);
		Bird b = new Bird(1.0);
	}
}

? ?:要是在创建对象的时候使用new Bird();这一句,编译器就会报错;没有找到匹配的构造器

? ? 这就好比,要是你没有提供任何构造器,编译器会认为“你需要一个构造器,让我给你制造一个吧”;但假如你已写了一个构造器,编译器则会认为“啊,你已经写了一个构造器,所以你知道你在做什么、要做什么;你是刻意省略了默认构造器。”

? ??

?

?

上一篇: 6 WPF控件 下一篇: 没有下一篇了!
发表评论
用户名: 匿名