class B { C c = new C(); B() {
System.out.println("class b ");
}}public class A {
C cc=new C();
public static void main(String[] args) {
}}
这个程序,没有输出class b
我是这样看这个程序,首先运行class A,初始化成员变量,这时候就运行C cc=new C(); 然后输出结果 class A。
但是没有输出,为什么?为什么把C cc=new C(); 修改成static C cc=new C();之后就可以输出class A了呢?
System.out.println("class b ");
}}public class A {
C cc=new C();
public static void main(String[] args) {
}}
这个程序,没有输出class b
我是这样看这个程序,首先运行class A,初始化成员变量,这时候就运行C cc=new C(); 然后输出结果 class A。
但是没有输出,为什么?为什么把C cc=new C(); 修改成static C cc=new C();之后就可以输出class A了呢?
这个程序首先由static void main进入A运行A的构造函数构造对象,然后初始化成员变量.由于static是类变量,若有static变量则在类加载时执行拉而不是在构造对象时执行.
你是不是就想输出class b??
class C{
static void B() {
System.out.println("class b ");
} }
public class A { public static void main(String[] args) {
C cc=new C();
cc.B(); }
}
class C{
static void B() {
System.out.println("class b ");
} }
public class A { public static void main(String[] args) { C.B(); }
}
你的代码有问题。 全发写 看看。
我估计你C类中的B方法是这么写的吧。static C cc=new C();这么写我不太明白什么意思。static这个关键字,可以将字段和方法设定成这个样。如果你给方法定义成类方法,你不用创建对象,用类直接就可以使用这个方法。