我很少使用char,今天在我尝试编写项目时,我陷入了一些概念。 在我的节点类
中public class Node {
private char c;
private int weight;
private Node leftChild, rightChild;
public Node(char a, int f) {
c = a;
freq = f;
}
public Node() {
}
// and all the getters setters
所以每当我使用默认构造函数时,我的char c值是多少?以及如何检查我的节点是否包含在我的其他课程中的符号?真的不知道我无法提供我尝试过的东西......我只是检查c是否为空或者c长度为0?但这是否正确?
答案 0 :(得分:0)
当您使用默认/空构造函数时,您的char值为' \ u0000' (空字符)' 0'。如果您永远不需要存储空字符,您可以随时通过
检查您的类是否具有此值leftChild.c == '\u0000'
或者您可以将此检查包含在属于Node
的方法中public boolean hasCharacter(){
return this.c != '\u000000'
}
并在需要时调用该方法
答案 1 :(得分:0)
在Java中,char
是原始类型。并根据JLS-4.12.5 Initial Values of Variables
对于类型
char
,默认值为null
字符,即'\u0000'
。
您也可以使用Character
对象包装器。作为Object
,它没有默认值。但它可以分配给null
喜欢
private Character c = null;
此外,weight
为0,因为
对于类型
int
,默认值为零,即0.
除了你的构造函数之外,你不能向我们展示freq
。