为什么我输出的不是93,但是能通过

来源:7-8 Java 中的方法内部类

慕UI8158843

2018-06-22 22:55

为什么能通过,显示的不是93

https://img1.mukewang.com/5b2d0d9f0001fbda04460160.jpg

写回答 关注

2回答

  • 火爆小琪
    2018-06-23 04:10:12
    已采纳
    //外部类
    public class HelloWorld {
        
        private String name = "爱慕课";
        
        // 外部类中的show方法
        public void show() { 
            // 定义方法内部类
            class MInner {
                int score = 83;
                public int getScore() {
                    return score + 10;
                }
            }
            
            // 创建方法内部类的对象
            MInner mi = new MInner();
            
            // 调用内部类的方法
            int newScore =mi.getScore();
            
            System.out.println("姓名:" + name + "\n加分后的成绩:" + newScore);
        }
        
        // 测试方法内部类
        public static void main(String[] args) {
            
            // 创建外部类的对象
            HelloWorld mo = new HelloWorld();
            
            // 调用外部类的方法
            mo.show();
        }
    }

    你代码没发上来,你让我猜我还真不好猜是哪里出了问题,  你可以对照我的找一下问题所在。 建议你根据注释的流程一步一步的在脑子里过一遍,看是在哪里去了问题, 


    另外不要一味的往死里钻,要跳出来理解一下,可以根据这个流程自己在心里做个比喻和假设。

  • 知道了些什么的段
    2018-07-22 22:35:15

    你应该写成这样了:

    MInner newScore=new MInner();

            newScore.getScore();  

    System.out.println("姓名:" + name + "\n加分后的成绩:" + newScore);

    打印对象newScore相当于调用对象的toString方法(newScore.toString())

    这是它本身的源码getClass().getName() + "@" + Integer.toHexString(hashCode())

    具体可以看看这个视频https://www.bilibili.com/video/av20477958/?p=90


Java入门第二季 升级版

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

530559 学习 · 6091 问题

查看课程

相似问题