Java的初始化
Java对象的初始化
从c开始,就有很多程序因为忘记初始化变量导致出现了错误。此后c++引入了构造器的概念,对变量进行初始化。构造器是一个变量对象时自动调用的一个方法。在Java中也引入了构造器的概念,并且额外的提供了‘垃圾回收器’ 。对于不使用的内存资源,将其自动释放。
在Java中,通过提供构造器来确保每个类的对象都会得到初始化。创建对象时,Java会在用户有能力操作对象之前调用构造器方法。从而保证对象进行了初始化
在Java中,构造器的命名规则是构造器方法必须和类名保持一致。
class Book{
Book(){
System.out.println("这是一本书");
}
public static void main(String[] args){
Book book = new Book();
}
}
当使用new Book()创建对象时,Java就会自动调用Book()这个构造器方法,由此来确保对对象操作之前,已经初始化了。因为构造器方法必须和类名保持一致,所以不适用于方法的首字母小写
当然一般来说构造器无需程序员来进行编写,除非在初始化时需要进行特殊操作。此时Java会提供一个默认构造器,在Java文档中术语是无参构造器。
构造器也是可以接受参数的。例如:
class Book(){
Book(int i){
System.out.println("我创建了"+i+"本书");
}
public static void main(String[] args){
Book book = new Book(1);
//控制台打印出,我创建了1本书
}
}
如果你编写了构造器,就不会有默认的无参构造器了。如果需要你可以重载一个,构造器方法和普通方法一样,同样适用于重载。
但构造器属于一个特殊的方法,用于初始化,所以不会以后返回值。(new表达式是返回对象的引用,但这不是构造器方法返回的)
对象的内部变量的初始化
对象内部变量的初始化,如果是基本数据类型,例如int char double boolean等。这些数据类型会被初始化为默认值0或false。如果是对象,默认值是null(String属于对象,不属于基本数据类型)
初始化顺序基于类在编写是定义时的顺序,而且即使在方法后也会先于方法初始化(包括构造方法)。因为不能保证方法内部会不会调用这些变量。
class Book{
int i;
Book(){
System.out.println("i=" + i);
System.out.println("b=" + b);
}
boolean b;
void p(){
System.out.println("b=" + b);
}
public static void main(String[] args){
Book book = new Book();
/**
*此时会打印出 i=0(换行)
*b=false
*/
}
}
本文深入探讨Java中构造器的概念及其在对象初始化中的作用。从C语言的变量初始化问题出发,介绍了Java如何通过构造器确保对象在创建时即得到初始化,避免潜在的程序错误。文章还讲解了构造器的命名规则、参数化构造器的使用,以及对象内部变量的默认初始化行为。

被折叠的 条评论
为什么被折叠?



