使用Python移植Java项目时遇到了一些麻烦。基本上我不明白的是,第4行是什么。骰子是在其他地方定义的类。我更确定它不会从Dice类创建对象或实例。它只是为以后的创作分配内存吗?我真的不知道。
1 public class Move {
2
3 // the dice used for this move
4 protected Dice dice;
5 // the set of movements used to perform this move, in this order
6 protected Movement[] movements;
7 .....}
P.S:stackoverflow拥有如此优秀的社区!到目前为止,我所有的问题都可以通过查看来解决。但现在我迷失了,不得不最终创建一个帐户;)
答案 0 :(得分:4)
此语句声明了一个类成员。类成员对于本地对象/变量是不同的,因为它们可以从整个类访问。在这种情况下,它定义了一个名为Dice
的{{1}}类型的受保护对象。
该语句实际上并不创建dice
对象;它只是表明它存在。如果要使用它,可以在方法中实例化它。例如:
Dice
答案 1 :(得分:1)
是的,它只是将Dice
对象的内存分配为类Move
的受保护属性。
编辑:在没有明确分配对象之前,它不是真正的内存分配。它更可能定义关系:Move
对象由受保护的Dice
对象组成。
答案 2 :(得分:1)
对于protected Dice dice;
,它就像是占位符的声明。它只是一个定义。你说:这是我的课程,我可能会在那里放一个Dice实例,名为' dice'。
protected Movement[] movements;
在引擎盖下,它定义了一个包含指针的变量。该指针最终将包含一个包含对象实例的值(内存位置)(如Dice对象)