新手问题。
我已经在基本级别上编程了一段时间了,但是在理解类数据类型时遇到了麻烦。
当我们说int a = 9;
时
它表示a为数据类型int,表示它只能包含整数。
明智地使用String,boolean,double,float等。
但是请考虑以下代码:
Class Node {
Node next = null;
int data;
public Node(int d){ data = d; }
void append(int d)
{
blah blah blah
..............
}
}
Node next = null;
是什么意思?我可以理解使用以下命令创建对象的工作Node next = new Node();
然后尝试操作下一个对象。
最佳答案
这段代码:
Node next = null;
声明一个类型为
Node
的变量。由于Node
是一个类,因此next
的值始终是对Node
类型的对象或子类的引用,或者对null
引用完全不引用任何对象的引用...在这种情况下,变量开始以null
的值关闭。理解
next
的值永远不是Node
对象本身是非常重要的……它只是一个引用。因此,假设我们有:Node next = new Node(10);
Node foo = next;
在这里,
next
和foo
是单独的变量,每个变量具有独立的值...但是我们已经将next
的值分配为foo
的初始值,这意味着它们都引用相同的对象。因此,如果我们打印出foo.data
,它将是10。我喜欢将变量视为纸片-对于引用类型的变量,纸片上写的是房屋的地址或“空”字。如果两张纸上写有相同的地址,则它们指的是同一所房子-但是这两张纸本身是独立的。更改一个变量的值(删除当前地址并写入另一个地址)不会更改其他变量的任何内容……但是无论您使用哪种纸,都可以看到房屋本身的更改(例如将门漆成红色)到那里。
请注意,在您的问题中,您已将
String
与int
,double
和boolean
混为一谈...但是int
,double
和boolean
是原始类型(其中变量的值只是数据本身-数字等),String
是一个类,所以它是一个引用类型。字符串变量的值不是文本本身,而是引用。