我想要澄清一些我理解的是正确与否的。
有人曾经直接告诉我打电话给班级(" Node") 在某种程度上快速形式 - 这有多少是真的?
示例 - 节点node = new Node();
注意 - 这些是二进制搜索树的代码段代码
Node root;
class Node
{
int key;
String name;
Node leftChild;
Node rightChild;
Node(int key, String name)
{
this.key = key;
this.name = name;
}
public String toString()
{
//year //team name
return key + " - " + name;
}
}
答案 0 :(得分:0)
当我将“Node”称为类中的数据类型时,它将其称为我的类“Node”的对象
- 醇>
当我使用“Node”作为类外的数据类型(Ex - Node root)时,它说它只接受“Node”的数据类型,它也不会 影响Node类本身,因为它不是其变量之一
Node root
- 声明类型为n
的变量Node
我稍后会去#1,但我想专注于这个陈述
它不会影响Node类本身
不,没有什么会影响班级,因为班级没有任何状态。变量的实例可以,例如root
,leftChild
和rightChild
。其中每个都是一个Node
类的实例。更新一个不会影响其他人。
- 当您在其类之外创建“Node”变量时,它会继承所有类字段(key,name,leftChild,rightChild)
醇>
不确定“inherit”是什么意思,但那些是Node
实例的成员变量(或字段),所以当然,它们是实例的属性/属性,你可以说“继承” “,但不要将它与面向对象编程中的”继承“的实际术语混淆。
- 有人曾经直接告诉我,打电话给班级(“节点”)是一种快速的做法 - 有多少是真的?
醇>
快速形式是什么? Node n;
和Node n = new Node();
不相同。后者初始化变量,前者仅声明。
使用new Node()
不是“调用类”,而是“构造一个类”,因为你是“调用构造函数”。所以,回到#1,是的,这似乎是一个有效的陈述。