问答详情
源自:8-3 如何使用 Java 中的对象

为什么没有赋值的时候,float型变量默认为零?而String类变量为null?

public class HelloWorld {
	float a;
	public static void main(String[] args) {
		HelloWorld helloword=new HelloWorld();
		System.out.println("a:"+helloword.a);
	}
}
求解释为什么是0.0?不是没有初始化吗?


提问者:ctyzzz 2015-12-22 22:19

个回答

  • 七九九
    2016-01-28 10:41:38

    在类中定义的变量,术语叫做域(field)。包括:

    类域(class field),俗称静态域、静态变量、类变量,特点是用static修饰,static用来说明该域是属于类的。每个类只有一个类域。加载类的时候、类域会随之加载,在创建对象之前类域就已经赋值;

    实例域(instance field),又称实例变量。创建对象并初始化之后,每个对象拥有自己的取值不同的实例域。

    如果没有在构造器中、声明中、代码块中进行初始化数据域,那么就会自动的赋予默认值:数值为0;布尔值为false;对象引用为null。String是类,因此default为null,float是数值,因此default为0.0.

  • 连宏伟HW
    2016-01-24 10:48:45

    float默认的就是0.0

  • Caballarii
    2015-12-22 23:03:17

    float未初始化的默认值就是0.0

  • qq_恒
    2015-12-22 22:38:51

    成员变量float不是初始化0.0的吗

  • ctyzzz
    2015-12-22 22:20:01

    string为null我已经知道了,现在不清楚为什么float类型的a输出0.0;