Java变量初始化过程详解

本文详细阐述了Java中创建对象时非静态变量的初始化过程,包括默认值、初始值、非静态代码块以及构造方法中参数的赋值。通过一个生动的派对场景,解释了在对象创建过程中实例属性(apple和banana)如何从默认值逐步变为最终值。总结了new创建并初始化对象的四个步骤:默认初始化、声明时初始化、非静态代码块初始化和构造方法初始化。
摘要由CSDN通过智能技术生成

博主举办了一场party,派对里供应了苹果apple和香蕉banana;
前来参加的派对人都属于派对成员类PartyMember类中的对象;
每当使用new关键字调用构造方法创建一个对象的时候需要传入实参声明该对象自己需要多少个apple和banana;

吝啬的JVM给出的默认值竟然x心x狂地都是0个?!
而慷慨的博主给出的初始值是8个apple和9个banana,并且让每个对象在创建时都要当着博主的面在非静态代码块里个吃一个apple和banana!!
现在有一个怯怯的新对象却只想要1个apple和2个banana…

到底这两个实例属性(非静态变量)的初始化过程是什么样的?
来参加party的萌新最终到底得到了几个apple和banana??


以下是实例代码的截图:(文本形式的源码在文末给出)
这里写图片描述

当调试程序单步执行的时候
进入程序入口main方法


原始状态(还未创建对象):
这里写图片描述


步骤一:创建赤裸裸的对象,获取默认值

执行第23行,
这里写图片描述
执行后便创建了一个对象
(也仅仅是创建了一个对象,但是并没有真正传入实参1和2的值
此时:实例属性this.apple 和 this.banana均为int型数据的

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值