Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我没有初始化变量,但仍然收到输出_Java_Initialization - Fatal编程技术网

Java 我没有初始化变量,但仍然收到输出

Java 我没有初始化变量,但仍然收到输出,java,initialization,Java,Initialization,这是我的密码: class Xyz{ public static void main(String args[]) { first fobj = new first(10); for(int i=0;i<5;i++){ fobj.add(); System.out.printf("%s",fobj); } } } class first{ public int sum=0; public

这是我的密码:

class Xyz{
   public static void main(String args[])
   {
      first fobj = new first(10);
      for(int i=0;i<5;i++){
         fobj.add();
         System.out.printf("%s",fobj);
      }
   }
}

class first{
   public int sum=0;
   public final int num;
   first(int x){
      num=x;
   }

   public void add(){
      sum+=num;
   }

   public String toString()
   {
      return String.format("sum = %d" ,sum);
   }
}


output:
sum=10
sum=20
sum=30
sum=40
sum=50
在第一个类中,我没有初始化名为sum的变量,但仍然得到了输出。有人能给我解释一下吗?
asgfafgalsdfkjsaflkasflaskfalskfajlskfaskfaslkjflaskfaslkflasjkf。

在int的情况下,类和实例数据成员自动默认为其类型0的“所有位关闭”值,即使您没有显式执行此操作。由于sum是一个实例数据成员,因此它隐式默认为0

这包括:

创建§15.9、§15.10.2时,每个类变量、实例变量或数组组件都会使用默认值进行初始化:

对于byte类型,默认值为零,即byte0的值。 对于short类型,默认值为零,即short0的值。 对于int类型,默认值为零,即0。 对于long类型,默认值为零,即0L。 对于类型float,默认值为正零,即0.0f。 对于double类型,默认值为正零,即0.0d。 对于char类型,默认值为空字符,即“\u0000”。 对于boolean类型,默认值为false。 对于所有参考类型§4.3,默认值为空。
在Java中,所有成员变量都会在创建对象时自动初始化为默认值,即使您自己不这样做。int的默认值为0。

实例成员自动初始化为默认值

每个类变量、实例变量或数组组件在创建时都使用默认值初始化:

For type `int`, the default value is zero, that is, 0. 

这是什么?公共整数和=0;您已将其初始化为0。对不起,这是我的错误,它的整数和;int变量仍然初始化为0。调查