Java基础拾遗_001(成员变量初始化)

本文探讨了Java中变量初始化的特点,特别是在方法内部与作为类成员时的不同表现。详细解释了基本数据类型与引用类型变量在不同场景下的默认初始化行为,并通过示例代码说明了这些概念。

    成员变量初始化       

 java中直接在方法中定义一个变量(未初始化),直接使用编译器会报错。

    

                Boolean bool ;
		//基本数据类型 没有初始化直接使用会报错
		System.out.println(bool);

但作为类的成员变量则Java语言会自动初始化它的值。

        例如: 

public class Test {
	public boolean bool;
	public static void main(String[] args) {
		List list= new ArrayList();
		//小写的boolean 是基本数据类型。
		Boolean bool = null ;
		//基本数据类型 没有初始化直接使用会报错
		System.out.println(bool);
		System.out.println(new Test().bool);
	}

}

输出结果:   null 

                    null

原因:(以下摘抄至 《Java的编程思想》这本书)

若某个主数据类型属于一个类成员,那么即使不明确(显式)进行初始化,也可以保证它们获得一个默认
值。
主类型 默认值
Boolean false
Char '\u0000'(null)
byte (byte)0
short (short)0
int 0
long 0L
float 0.0f
double 0.0d
一旦将变量作为类成员使用,就要特别注意由Java 分配的默认值。这样做可保证主类型的成员变量肯定得到
了初始化(C++不具备这一功能),可有效遏止多种相关的编程错误。
然而,这种保证却并不适用于“局部”变量——那些变量并非一个类的字段。所以,假若在一个函数定义中
写入下述代码:
int x;
那么x 会得到一些随机值(这与C 和C++是一样的),不会自动初始化成零。我们责任是在正式使用x 前分
配一个适当的值。如果忘记,就会得到一条编译期错误,告诉我们变量可能尚未初始化。这种处理正是Java
优于C++的表现之一。许多C++编译器会对变量未初始化发出警告,但在Java 里却是错误。


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值