Java的初始化

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
         */
     }
 }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值