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。调查