我想一下 这个 程序的具体执行过程,谢谢!
为什么会出现以下结果.谢谢!!
结果:
Cup(1)
Cup(2)
Cups()
Cups()
Inside main()
f(99)
程序:
class Cup
{
Cup(int er)
{
System.out.println("Cup(" + er + ")");
}
void f(int er)
{
System.out.println("f(" + er + ")");
}
}class Cups
{
static Cup c1;
static Cup c2;
static
{
c1 = new Cup(1);
c2 = new Cup(2);
}
Cups()
{
System.out.println("Cups()");
}
}public class ExplicitStatic
{
public static void main(String[] args)
{
System.out.println("Inside main()");
Cups.c1.f(99); // (1)
}
static Cups x = new Cups(); // (2)
static Cups y = new Cups(); // (2)
} ///:~
为什么会出现以下结果.谢谢!!
结果:
Cup(1)
Cup(2)
Cups()
Cups()
Inside main()
f(99)
程序:
class Cup
{
Cup(int er)
{
System.out.println("Cup(" + er + ")");
}
void f(int er)
{
System.out.println("f(" + er + ")");
}
}class Cups
{
static Cup c1;
static Cup c2;
static
{
c1 = new Cup(1);
c2 = new Cup(2);
}
Cups()
{
System.out.println("Cups()");
}
}public class ExplicitStatic
{
public static void main(String[] args)
{
System.out.println("Inside main()");
Cups.c1.f(99); // (1)
}
static Cups x = new Cups(); // (2)
static Cups y = new Cups(); // (2)
} ///:~
解决方案 »
- 关于Java Topology Suite的问题
- 如何防止文件在上传过程中被读取
- 布局管理器 + Applet 如何在Applet 中对控件进行布局, 是使用布局管理器在init()中进行吗?
- 如何知道applet运行了多久?
- Java中如何使用3DES加密
- 请问java j2ee ejb j2me jms 是什么关系?
- java中怎样识别中文目录?■■■■■■■■■■■■■■■■■
- 在jbuilder7中怎样自动生成get和色set方法
- 各位大虾我想学JAVA,谁能推荐好书以小弟一看.给分的
- 求指导这个异常怎么解决
- 开发java程序时数据库一般用哪一种数据库?
- 客户端往服务器端发送信息的问题~!!
static Cups x = new Cups(); // (2)
static Cups y = new Cups(); // (2)
在Cups中执行static块 c1 = new Cup(1);
c2 = new Cup(2);
而他们都是static的,所以只有一个实例
即只输出一次
Cup(1)
Cup(2)
然后执行Cups的构造函数,输出x和y各一次构造函数输出
Cups()
Cups()
再接着执行 ExplicitStatic的main函数输出Inside main()
而后执行f函数输出f(99)
应该是先执行 System.out.println("Inside main()");啊.这应该怎么解释???public static void main(String[] args)
{
System.out.println("Inside main()");
Cups.c1.f(99); // (1)
}
先执行static的fields,有main函数的类也一样
huojicq() ( )
new一个对象,先执行类的static域,再执行实例域,再执行构造方法
believefym(feng) ( )
有main函数的类也一样