third = second;
这个语句应该放在方法里面吧?

解决方案 »

  1.   

    ①a.second,不能访问私有属性;
    ②third = second;需要加int、float等类型的;
    ③多看下基础书吧
      

  2.   


    但是注释掉a.second这一行后还是出现这样的错误提示,另外,int 在最开始处不是加了吗?
      

  3.   

    把它放进方法里,的确能得出结果,为什么像我这样不行呢?的确要放进方法,这一点我自己现在也理解了。但是如果我注释掉23行,把46行改成我想如果我这样定义public int third = secnond;可以得出这样的结果E:\java练习程序\practice\Test>java Test
    2
    10
    0为什么a.third是0呢?
      

  4.   


    但是注释掉a.second这一行后还是出现这样的错误提示,另外,int 在最开始处不是加了吗?我以为你要再定义一个变量,third=second;这句话是不能放在类中的,类中可以有属性,方法,内部类,你加的那句不属于以上三种
      

  5.   

    把它放进方法里,的确能得出结果,为什么像我这样不行呢?的确要放进方法,这一点我自己现在也理解了。但是如果我注释掉23行,把46行改成我想如果我这样定义public int third = secnond;可以得出这样的结果E:\java练习程序\practice\Test>java Test
    2
    10
    0为什么a.third是0呢?

    a.third之所以为0是因为,类会初始化second为0,再把second的值赋给third,你可以去了解下java中类的初始化顺序!
      

  6.   

    把它放进方法里,的确能得出结果,为什么像我这样不行呢?
    类有属性和方法,而third = second;不是属性,也不是方法,只是一个语句,你对类的理解不够透彻。
      

  7.   

    second被private修饰且没有提供get和set方法因此a.second不能访问. third = second,这一句我认为是逻辑上的错误,因为second不可见,JVM找不到对外的second,而你人为地让second赋值给third,当然会报错。
      

  8.   

    在我改成public int third = second后,我认为a.third应该是10才对,但是是0,不理解了。
      

  9.   

    把它放进方法里,的确能得出结果,为什么像我这样不行呢?的确要放进方法,这一点我自己现在也理解了。但是如果我注释掉23行,把46行改成我想如果我这样定义public int third = secnond;可以得出这样的结果E:\java练习程序\practice\Test>java Test
    2
    10
    0为什么a.third是0呢?

    a.third之所以为0是因为,类会初始化second为0,再把second的值赋给third,你可以去了解下java中类的初始化顺序!您是说经过这一步
    public static B returnB()
    {
    second = 10;

    return new B(second);
    }
    后second归0?我以为second会是10。
      

  10.   

    把它放进方法里,的确能得出结果,为什么像我这样不行呢?的确要放进方法,这一点我自己现在也理解了。但是如果我注释掉23行,把46行改成我想如果我这样定义public int third = secnond;可以得出这样的结果E:\java练习程序\practice\Test>java Test
    2
    10
    0为什么a.third是0呢?

    a.third之所以为0是因为,类会初始化second为0,再把second的值赋给third,你可以去了解下java中类的初始化顺序!您是说经过这一步
    public static B returnB()
    {
    second = 10;

    return new B(second);
    }
    后second归0?我以为second会是10。
    不是,在你的程序中是经过A a = new A();这一句把second归为0,再次建议看一下有关java类的初始化顺序文档