public class HelloWorld { float a; public static void main(String[] args) { HelloWorld helloword=new HelloWorld(); System.out.println("a:"+helloword.a); } } 求解释为什么是0.0?不是没有初始化吗?
在类中定义的变量,术语叫做域(field)。包括:
类域(class field),俗称静态域、静态变量、类变量,特点是用static修饰,static用来说明该域是属于类的。每个类只有一个类域。加载类的时候、类域会随之加载,在创建对象之前类域就已经赋值;
实例域(instance field),又称实例变量。创建对象并初始化之后,每个对象拥有自己的取值不同的实例域。
如果没有在构造器中、声明中、代码块中进行初始化数据域,那么就会自动的赋予默认值:数值为0;布尔值为false;对象引用为null。String是类,因此default为null,float是数值,因此default为0.0.
float默认的就是0.0
float未初始化的默认值就是0.0
成员变量float不是初始化0.0的吗
string为null我已经知道了,现在不清楚为什么float类型的a输出0.0;