WuLi小明 发表于 2020-3-15 19:05:53

新手:关于类组合中的引用传递

本帖最后由 WuLi小明 于 2020-3-15 19:09 编辑






如图所示,第一个类 InputScore 组合第二个类 DelScore, ,第二个类组合第三个类 ComputerAver,

在组合要用到的方法时,要进行声明一个要组合方法的对象,以及引用的传递,也就是下边我标出的两句,第一句声明我是懂的,第二句就不太懂了,这个传值进来的 DelScore del 是在哪来的,是真的不太懂这句话的作用,哪个大佬能帮帮忙拉,让我理解一下   [捂脸],   

ArmandXiao 发表于 2020-3-15 19:05:54

再解释清楚一点吧
DelScore( ComputerAver computer){
    this.computer = computer
}
首先你要明白这是一个构建函数
构建函数就是当你创建这个类的实例的时候最先调用的
你没有重写默认的构建函数 那么你这个类(DelScore类)在创建的时候 必须添加一个 ComputerAver类的实例 当作参数

this.computer = computer 什么意思呢
这个就是说 你在构建函数之前 创建了一个类变量 属性是 ComputerAver 然后名字叫 computer
但是你并没有赋值
所以就在构建函数内赋值
this就是用来区别 类变量 和 你给的参数
this.computer 指的就是类变量
computer 指的就是你传进来的 ComputerAver的类实例

所以这句话的意思就是 把类变量computer 的指 赋值为 ComputerAver类的实例变量
其他的你可以自己理解一下
还不懂来问

希望采纳

Robinz 发表于 2020-3-15 23:31:53

inputScore方法里要用到DelScore对象呀,所以在创建InputScore类的时候要初始化这个类的数据域,InputScore类的构造函数接受一个DelScore的对象,进行类的构造。至于DelScore类的对象(del)哪里来,就是用的时候直接new出来的。

ArmandXiao 发表于 2020-3-16 10:33:46

哈哈哈哈哈 你标红框的是构造函数 是在主函数运行时 给DelScore这个类添加参数时候需要的
你只写了几个类 没有写主函数 所以可能体先不出来这些类的作用 给你举个例子吧
DelScore temp = new DelScore( new ComputerAver()) 就成功创建啦
new ComputerAver() 就是你好奇的那个del 是哪里来的
要是不懂继续来问我
页: [1]
查看完整版本: 新手:关于类组合中的引用传递