【发布时间】:2016-12-18 14:53:47
【问题描述】:
我不确定声明和初始化的定义。以及何时设置默认值初始化。
1)例如对象rocky(Dog类)的声明:
Dog rocky;
这只会在堆栈中创建一个条目并且没有引用?
.
2) 创建 Dog 的实例:
new Dog();
内存分配在堆中,默认值初始化(变量legs到0),创建一个Reference。 p>
如果我没有构造函数:编译器会创建一个默认构造函数。是空的吗? Constructor 和 Default Values Initialization 必须是不同的水壶,并且是可能的 Instance Initializer 之一(下一个 Instance Initializer Block 和 构造函数)。
.
3) Assignment:将Reference-Value放入栈中?
rocky = new Dog();
我说的对吗?
谢谢
示例:
class Dog
{
int legs;
Dog()
{
System.out.println("constructor invoked");
}
}
public class Foo
{
public static void main(String[] args)
{
Dog rocky;
new Dog();
rocky = new Dog();
}
}
【问题讨论】:
标签: java object initialization declaration