Java从入门到精通(一) 对象的初始化过程

对象构造


一、对象初始化

1.声明对象

当我们创建完类后,现在我们需要声明一个对象

A a = new A();

 

当对象创建后,Java虚拟机会调用匹配的构造函数,如果你还不了解构造函数那么请看下面的内容,如果你已经了解就可以先跳过这一节,看第三节。

2.构造器

构造器的作用是用来初始化对象中的变量,构造器的方法名和类名必须一样,且构造器是不需要类型名的(可以认为他本身就是一种类型),在一般情况下构造器有以下三个特性:

(1)当类中没有定义构造器的情况下会自动生成一个无参构造器。

public class A {
    private int val;
    private String key;
    a() {
      //java会自动生成一个这样一个无参构造器    
    }
}

(2)当自定义了构造器后Java机便不会自动生成一个无参构造器。

public class A {
    private int val;
    private String key;
    //a() {
        //自动生成的构造器将不存在   
   //}
    a(int v, String k) {
        val = v;
        key = k;
    }
}

注:你可能会疑惑为什么要在意这个自动生成的,当你在创建无参构造器对象时你就不可以简单的用A a=new a();来写因为此时并不存在a()构造器。但这里他并没有造成太大的影响,因为我们通常在声明对象的时候一定会对其中的变量初始化。而它真正的影响在之后的继承关系中,没有无参构造可能会让子类的构造函数产生错误信息。

(3)构造函数可以重载,即可以有含有不同参数的构造函数。

public class A {
    private int val;
    private String key;
    a() {} //手动添加一个无参构造
    a(int v, String k) { //声明的有参构造
        val = v;
        key = k;
    }
}

3.Java机对象的构造过程

(1)检测类是否被加载过

(2)为新生的对象分配内存空间

在类加载后,给对象分配内存空间

(3)初始化零值

(4)执行init方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值