在这里,我宣布同一类中的类动物实例.在c中它被认为是一个错误:
struct demo{
int anyvar;
struct demo anyvar1;
};
Run Code Online (Sandbox Code Playgroud)
因为它应该是一个无限的声明循环.
然后,为什么Java中允许这个代码?
class Animal{
Animal object1 = new Animal();
public static void main(String[] args)
{
Animal obj = new Animal();
obj.dostuff();
}
public void dostuff()
{
System.out.println("Compiles");
object1.dostuff();
}
public void keepdoingstuff()
{
System.out.println("Doing Stuff...");
object1.keepdoingstuff();
}
}
Run Code Online (Sandbox Code Playgroud)
Bri*_*ach 11
因为在Java中你声明一个包含引用值的变量; 一个指针.
这就像做:
struct demo{
int anyvar;
struct demo *anyvar1;
};
Run Code Online (Sandbox Code Playgroud)
java中的所有对象都是在堆上创建的,并且使用new关键字显式创建它们.
public class Node
{
Node next;
String value;
public Node() { ... }
...
}
Run Code Online (Sandbox Code Playgroud)
next并且在对象被实例化时value自动初始化为并且将保持这样,直到为它们分配参考值.nullNode
| 归档时间: |
|
| 查看次数: |
140 次 |
| 最近记录: |