只是好奇。有以下简单的类:
public class Foo {
private static int fooVar = 1;
private int foo;
private int boo = 1; // another int, not a typo
public Foo(int foo) {
this.foo = foo;
}
}
通话:
Foo a, b, c;
首先宣布哪一个? (我假设从lft到右边。)是否也声明了实例变量fooVar
和foo
?记忆中会发生什么?变量boo
的值是否保存在内存中,甚至构造函数都没有被调用?
答案 0 :(得分:0)
尼古拉斯,
a,b和c是Foo类型的指针。正如你所说,他们应该从左到右宣布。
因为与声明相同
Foo a;
Foo b;
Foo c;
记忆中会发生什么?是变量boo的值保存在 内存甚至构造函数都没有被调用过吗?
没有这样的价值boo或foo(错字?)。
如果尚未调用构造函数,则代码中还没有对象。
如果这样做:
Foo a= new Foo();
您实际上按以下顺序执行了两项操作: 首先创建一个Foo对象,然后它被赋予Foo指针a。
记住你的构造函数就像一个方法。请在{之前添加() 如果你传递一个输入变量,请在()中这样做 像:
public Foo(foo) {
this.foo = foo; }