问答详情
源自:7-8 Java 中的方法内部类

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

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

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

提问者:慕UI8158843 2018-06-22 22:55

个回答

  • 火爆小琪
    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