鱼C论坛

 找回密码
 立即注册
查看: 3370|回复: 3

[已解决]新手:关于类组合中的引用传递

[复制链接]
发表于 2020-3-15 19:05:53 | 显示全部楼层 |阅读模式
10鱼币
本帖最后由 WuLi小明 于 2020-3-15 19:09 编辑

1.jpg
2.jpg
3.jpg


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

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

Inked1_LI.jpg
最佳答案
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类的实例变量
其他的你可以自己理解一下
还不懂来问

希望采纳

最佳答案

查看完整内容

再解释清楚一点吧 DelScore( ComputerAver computer){ this.computer = computer } 首先你要明白这是一个构建函数 构建函数就是当你创建这个类的实例的时候最先调用的 你没有重写默认的构建函数 那么你这个类(DelScore类)在创建的时候 必须添加一个 ComputerAver类的实例 当作参数 this.computer = computer 什么意思呢 这个就是说 你在构建函数之前 创建了一个类变量 属性是 ComputerAver 然后名字叫 computer ...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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类的实例变量
其他的你可以自己理解一下
还不懂来问

希望采纳
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-15 23:31:53 | 显示全部楼层
inputScore方法里要用到DelScore对象呀,所以在创建InputScore类的时候要初始化这个类的数据域,InputScore类的构造函数接受一个DelScore的对象,进行类的构造。至于DelScore类的对象(del)哪里来,就是用的时候直接new出来的。

评分

参与人数 1荣誉 +1 鱼币 +3 贡献 +1 收起 理由
WuLi小明 + 1 + 3 + 1 谢谢

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-16 10:33:46 | 显示全部楼层
哈哈哈哈哈 你标红框的是构造函数 是在主函数运行时 给DelScore这个类添加参数时候需要的
你只写了几个类 没有写主函数 所以可能体先不出来这些类的作用 给你举个例子吧
DelScore temp = new DelScore( new ComputerAver()) 就成功创建啦
new ComputerAver() 就是你好奇的那个  del 是哪里来的
要是不懂继续来问我
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-15 15:08

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表