类问题(超级新)

发布于 2024-08-28 00:44:57 字数 298 浏览 8 评论 0原文

我无法弄清楚以下练习中发生的情况,我正在学习 Smalltalk,所以我是新手。

A级>>新 ^超级新初始化。

A>>初始化 a:=0。

B 类>>新:aParameter |实例| 实例:=超级新。 实例b:实例a + a参数。 ^实例

B>>初始化 b:=0。

问题说明了执行以下代码时会发生什么:

B new:10。

但我无法弄清楚为什么实例变量不属于A类。

谢谢

I've problems to figure it out what's happening in the following exercise, I'm learning Smalltalk, so I'm newbie.

Class A>>new
^super new initialize.

A>>initialize
a:=0.

Class B>>new: aParameter
|instance|
instance := super new.
instance b: instance a + aParameter.
^instance

B>>initialize
b:=0.

The problem says what happen when the following code is executed:

B new:10.

But I can't not figure it out why instance variable does not belong to A class.

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

后eg是否自 2024-09-04 00:44:57

我发现了这个问题,当代码执行“instance := super new”的初始化程序时,缺少超级初始化。是B类的初始化器,这就是A实例变量没有初始化的原因,下面的代码解决了这个问题:

B>>initialize superinitialize

b:=0。

I discovered the issue, the missing of super initialize, when the code was executed the initializer of "instance := super new." was the initializer of class B, that's why the A instance var was not initialized, the following code fix the issue:

B>>initialize

super initialize.

b:=0.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文