在测试的路上,学习无止境。。。
相信自己,快乐每一天。。。
紧急通知:
支付宝急招资深软件测试工程师,详见 http://job.alipay.com/recruit/offerDetail.htm?offerId=21683,同时招聘资深测试开发工程师。有意者投递简历至:xin.maojx@alipay.com
谈一下java的构造函数
上一篇 /
下一篇 2009-08-03 19:50:20 / 天气: 晴朗
/ 心情: 高兴
/ 个人分类:JAVA 学习
上个星期终于下定决定要全面的、系统的学习JAVA语言,在众多语言中,选择JAVA,自然有它的理由,但我不想多说,我只想把每天学的JAVA知识,一点点积累下来,权当学习笔记吧。
首先,了解下JAVA的构造函数是做什么的?用来对NEW的对象进行初始化的(先分配存储空间,再调用构造函数)。比如初始化一个变量;
什么时候调用构造函数?在使用对象之前,先调用构造函数进行初始化,然后再使用此对象的其它方法;
构造函数的命名规则,和普通的方法一样么?答案是:不一样。构造函数的名字和类名必须要一样。
构造函数可以使用参数,且没有返回值。
下面我们举个例子,来看构造函数。
package exceise;
import java.util.*;
class Tree {
int height;
Tree() {
prt("Planting a seedling");
height = 0;
}
Tree(int i) {
prt("Creating new Tree that is "
+ i + " feet tall");
height = i;
}
void info() {
prt("Tree is " + height
+ " feet tall");
}
void info(String s) {
prt(s + ": Tree is "
+ height + " feet tall");
}
static void prt(String s) {
System.out.println(s);
}
}
public class Exceise3 {
public static void main(String[] args) {
//for(int i = 0; i < 5; i++) {
Tree t = new Tree(1);
t.info();
t.info("overloaded method");
//}
// Overloaded constructor:
new Tree();
}
}
结果如下:
Creating new Tree that is 1 feet tall
Tree is 1 feet tall
overloaded method: Tree is 1 feet tall
Planting a seedling
--------------------------------
可以看出:
Tree t = new Tree(1);
系统调用构造函数Tree(int i) ;
new Tree();
系统调用构造函数Tree();
那类中如果没有自定义构造函数,编译程序会自动生成一个构造函数。若有构造函数,编译程序就不会自动生成了。
至于在类TREE中,为什么会存在名字相同但参数不同的方法info,这涉及到重载,下次再讲。
不能根据返回值类型来判断重载的方法。
收藏
举报
TAG: