2301_77118195 2023-09-15 23:08 采纳率: 85.7%
浏览 4
已结题

mogul 很蒙圈 不知道自己咋想的构造出来的 现在看不明白了

这个函数能正常运行 并打印出来校长打游戏 但是我不明白new teacher(abc)为什么可以 括号内应该是字符串 而且这个abc已经赋值成student的类函数啦 反正很蒙圈 希望有人帮忙解答一下 非常感谢

img

  • 写回答

2条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-09-17 02:07
    关注

    【以下回答由 GPT 生成】

    Java代码中的类和对象是面向对象编程的核心概念,我们来逐步解答你的问题。

    在给出解答之前,让我们先对代码进行一些调整,以便更好地理解。修改代码如下:

    package com.gigetest;
    
    class Teacher {
        public Teacher(Student a) {
            a.student("abc"); 
        }
    }
    
    class Student {
        String name;
    
        public void student(String name) {
            this.name = name;
            System.out.println("校长打游戏");
        }
    }
    
    public class DemoB {
        public static void main(String[] args) {
            Student abc = new Student();
            Teacher teacher = new Teacher(abc);
        }
    }
    

    现在来回答你的问题:

    1. 在Teacher类的构造函数中,为什么可以传入一个字符串"abc"作为参数,而不是一个Student类对象呢?

    这是因为Teacher类的构造函数接受一个Student类型的参数,但在构造函数内部,并没有使用传入的Student对象进行其他操作或者保存它。相反,构造函数调用了Student类的student方法,并传入了"abc"作为参数,实际上是在调用Student类的方法,而不是将"abc"作为参数传递给Teacher类。所以,传入一个字符串"abc"只是为了调用Student类的方法而已,并没有与Teacher类的构造函数关联。

    1. "abc"参数似乎是对Student类的函数调用,我对这部分代码很困惑。

    是的,你的理解是正确的。在Teacher类的构造函数中,通过调用Student类的student方法,并传入"abc"作为参数,实际上是在调用Student类的函数。在student方法中,将参数赋值给Student类的成员变量name,并打印出"校长打游戏"。所以,在Teacher类的构造函数中,通过调用Student类的方法,间接地实现了在Teacher类中调用该方法的效果。

    希望以上解答能够帮助你理解这部分代码的含义。如果还有其他问题,请随时提问!


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 10月3日
  • 已采纳回答 9月25日
  • 创建了问题 9月15日