public class Quan {
 byte x;
    short y;
    int z;
    int z1;
    long a;
    float b;
    double c;
    char d;
    boolean e;
    public static void main(String[] args)
    {
     int z1=111;
        System.out.println(" 打印数据z="+z1);
        Quan m=new Quan();
        System.out.println(" 打印数据x="+m.x);
        System.out.println(" 打印数据y="+m.y);
        System.out.println(" 打印数据z="+m.z);
        System.out.println(" 打印数据a="+m.a);
        System.out.println(" 打印数据b="+m.b);
        System.out.println(" 打印数据c="+m.c);
        System.out.println(" 打印数据d="+m.d);
        System.out.println(" 打印数据e="+m.e);
    }}哥哥们,我是刚学java几天的菜鸟,书上有个例子。步骤 到了
 Quan m=new Quan();
 System.out.println(" 打印数据x="+m.x);
这一步看不明白,这一步输出结果是 打印数据x=0
请问这个0是怎么得来的,谢谢大神们

解决方案 »

  1.   

    成员变量中的数字默认初始化为0
    引用为null
    boolean 为 false
      

  2.   


    哥哥,Quan m=new Quan();这个作用是什么?
    为什么m.x是0呢,难道是m*0=0吗?
    别笑我啊。。我是真的不明白,求指导。谢谢!!!!
      

  3.   

    Quan m=new Quan();创建一个对象,并初始化。
    m.x = 0;是初始化就是0,而不是m*0=0
      

  4.   

    Quan m=new Quan();你只是实例化了  并没有给里面的属性赋值至于为什么是初始值为0  这是jvm 规范 , 不同类型的变量  有不同的默认值int : 0
    byte : 0
    long : 0
    shor : 0
    float : 0.0
    double : 0.0
    boolean : false
    char : '\u0000'
    object reference : null
      

  5.   

    +1首先你要知道你上面定义的那些变量的默认值是多少,在你没有特别的给这些变量赋予其他值的话,你打印出来就是它们的默认值。
    Quan m=new Quan();
    System.out.println(" 打印数据x="+m.x);   // 打印出byte的默认值 0