新手问题。
我已经在基本级别上编程了一段时间了,但是在理解类数据类型时遇到了麻烦。
当我们说它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
..............
}
}
Run Code Online (Sandbox Code Playgroud)
什么Node next = null;意思 我可以理解创建对象的工作量
Node next = new Node();
Run Code Online (Sandbox Code Playgroud)
然后尝试操作下一个对象。
这段代码:
Node next = null;
Run Code Online (Sandbox Code Playgroud)
声明类型为的变量Node。与Node类一样,的值next始终是对类型Node或子类的null引用,或者根本不引用任何对象的引用...在这种情况下,变量以值开头的null。
这是真正重要的是要认识到的价值next是从来没有一个Node对象本身......这是只有永远的参考。因此,假设我们有:
Node next = new Node(10);
Node foo = next;
Run Code Online (Sandbox Code Playgroud)
在这里,next和foo是单独的变量,每个变量具有独立的值...但是我们已将的值分配next为的初始值foo,这意味着它们都引用相同的对象。因此,如果我们打印出来foo.data,它将是10。
我喜欢将变量视为纸片-对于引用类型的变量,纸片上写的是房屋的地址或“空”字。如果两张纸上写有相同的地址,则它们指的是同一所房子-但这两张纸本身是独立的。更改一个变量的值(删除当前地址并写入另一个地址)不会更改其他变量的任何内容……但是无论您使用哪种纸,都可以看到房屋本身的更改(例如将门漆成红色)到那里。
请注意,在你的问题,你已经集中String在int,double而且boolean......但而int,double并且boolean是原始类型(其中一个变量的值就是数据本身-的数量等),String是一类,所以这是一个参考类型。字符串变量的值不是文本本身,而是引用。
| 归档时间: |
|
| 查看次数: |
10671 次 |
| 最近记录: |