编程思想第二章(一切都是对象01)

我们对于《编程思想》里面的第二章:一切都是对象,其中有2.4.1(字段和方法)有以下的一段话我觉得总结的还是不错的,以前自己都没有注意到过这个

    基本成员默认值

    若类的某个成员是基本数据类型,即使没有进行初始化,java也会确保它获得一个默认值,当变量作为类的成员使用时,java才确保给定其默认值,以确保那些是基本类型的成员变量得到初始化(C++没有此功能),防止产生程序错误,但是,这些初始值对你的程序来说,可能是不正确的,甚至是不合法的。所以做好明确地对变量进行初始化。

    然而上述确保初始化的方法并不适用于“局部”变量(即并非某个类的字段),因此,如果在某个方法定义中有

    int x;

那么变量x得到的可能是任意值(与C和C++一样),而不会被自动初始化为零。所以在使用x前,应先对其赋一个合适的值。如果忘记了这么做,java会在编译时返回一个错误,告诉你此时变量没有初始化,这正是java优于C++的地方。(许多C++编译器会对未初始化变量给予警告,而java视为错误)

当我在intelliJ写下如下测试,编译器报错(Variable ‘i’ might not have been initialized)

	@Test
	public void test1(){
		int i;
		System.out.println(i);
	}
发布了99 篇原创文章 · 获赞 72 · 访问量 54万+

猜你喜欢

转载自blog.csdn.net/wj123446/article/details/87437616
今日推荐