A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

本帖最后由 茄子 于 2014-6-2 12:13 编辑

实在是看不出哪里出问题了(这真的不是灌水啊)

class DemoA
{
        int num=10;
        DemoA(int unm)
        {
                this.num=num;
        }
        /*public String toString()   //注意返回类型,覆盖方法之后,返回类型是不会发生改变的
        {
                return "DemoA" +this.num;
        }
        */
}


public class ToStringTset {

        public static void main(String[] args) {
                DemoA a=new DemoA(45);
        //        System.out.println(a.toString());
                System.out.println(a.num);

        }

}



运行结果居然是:10


求解是啊,哪里出问题了呢……眼拙




在线等啊

8 个回复

正序浏览
王亚亚 发表于 2014-6-3 09:38
首先你unm写错之后,你把45 传进去,穿给了unm,但是没有做任何操作,由于构造方法中没有局部变量num,所以 ...

嗯嗯,这错误确实犯的有点低级,但是,说真的,当时真的没有看出来,我都检查了好几遍了!!
回复 使用道具 举报
首先你unm写错之后,你把45 传进去,穿给了unm,但是没有做任何操作,由于构造方法中没有局部变量num,所以num就只全局变量的num,就是把num赋值给了num,所以就只是10。调用的时候,直接调用的是10。因此没有改变。
回复 使用道具 举报
黎志勇 发表于 2014-6-2 11:23
很明显是打字的时候打错顺序了

谢谢,我知道错了!!
回复 使用道具 举报
兄弟,慢慢来吧,有的时候哪怕我们照样打出来调试也会出现问题的,耐心点就好了,自己看看提示
回复 使用道具 举报
200米王朝 发表于 2014-6-2 11:16
DemoA(int unm)

目测错别字吧  num 不是 unm

谢谢,这种错误我真的看不出来!!!!着急了
回复 使用道具 举报
200米王朝 发表于 2014-6-2 11:16
DemoA(int unm)

目测错别字吧  num 不是 unm

谢谢,这种错误我真的看不出来!!!!
回复 使用道具 举报
很明显是打字的时候打错顺序了
  1.         int num=10;
  2.         DemoA(int unm) // 参数这里是unm
  3.         {
  4.                 this.num=num; //这里则是num,结果自己赋值给自己,所以是10
  5.         }
复制代码
回复 使用道具 举报
   DemoA(int unm)

目测错别字吧  num 不是 unm



class DemoA
{
        int num=10;
        DemoA(int num)
        {
                this.num=num;
        }
        /*public String toString()   //注意返回类型,覆盖方法之后,返回类型是不会发生改变的
        {
                return "DemoA" +this.num;
        }
        */
}


public class Test {

        public static void main(String[] args) {
                DemoA a=new DemoA(45);
        //        System.out.println(a.toString());
                System.out.println(a.num);

        }

}

结果是45

评分

参与人数 1技术分 +1 收起 理由
李小然 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马