Java对变量和对象的初始化做的是很好的!以下是本人自己写的一点...............
在Java中,普通变量(局部变量)需要明确初始化之后才能使用,否则编译器将报错!
而对于对象的初始化Java也采用了C++引入的构造器,构造器是一个在创建对象时被自动调用的特殊方法。这样可以确保在用户有能力操作对象之前对象已经被初始化了。
在创建对象时,域变量及域对象首先会被初始化为起默认值,然后才会根据你在构造器中的赋值进行改变!
在类的内部,变量定义的先后顺序决定了初始化的顺序。即使变量定义散布于方法定义之间,它们仍旧会在任何方法(包括构造器)被调用之前得到初始化。
至于静态数据域的初始化,大家都知道啦,无论你创建多少个对象,类的静态数据域都只有一份,它只占用一份存储区域。并且它的初始化是发生在“非静态域”之前,在类被第一次加载的时候被初始化“一次”,只初始化一次!
在Java中,如果用户没有为类提供一个构造器,那么编译器就会自动帮你创建一个默认构造器(即无参构造器),以便用户能创建对象。但是如果用户已经定义了一个构造器(无论是有参还是无参的),编译器就不会再为你自动创建默认构造器了!和C++一样,Java中的构造器是可以重载的,并且他们是可以互相调用的。当构造器调用时就涉及到了我们的关键字“this”(this这个关键字表示的是当前对象的引用)。当在一个构造器中调用另一个构造器时必须把调用语句置于本构造器的第一行,如:
虽然在构造器中用this关键字调用另一个构造器,但是却不能同时调用两个以及更多。
posted on 2009-02-26 22:36
Jun Woo 阅读(2048)
评论(1) 编辑 收藏