黑马程序员技术交流社区
标题:
关于static关键字问题
[打印本页]
作者:
ztw
时间:
2014-7-27 14:48
标题:
关于static关键字问题
本帖最后由 ztw 于 2014-7-28 22:12 编辑
class Demo{
public Demo(){
System.out.println("d");
}
static{
System.out.println("a");
}
{
System.out.println("b");
}
private static String name = "hah";
public static void show(){
System.out.println(name);
}
}
class Test(){
public static void main(String[] args){
Demo.show();
}
}
我想问问以上代码,打印出来的结果顺序是什么,原因是什么?求大神回复。
作者:
rolling-stone
时间:
2014-7-27 15:45
class Demo{
public Demo(){
System.out.println("d");
}
static{
System.out.println("a");
}
{
System.out.println("b");
}
private static String name = "hah";
public static void show(){
System.out.println(name);
}
}
class Test{
public static void main(String[] args){
Demo.show();
}
}
复制代码
结果:
a
hah
作者:
rekirt
时间:
2014-7-27 16:14
static修饰的内容随着类的加载而加载,
作者:
dingpanbo
时间:
2014-7-27 17:16
结果是
a
hah
首先说几个问题,一、主函数编写的时候,没有()。二、和类同名的是构造函数,前面一般不加public。
static所表示的函数是静态代码块儿,随着类的加载二加载,只运行一次,是给类进行初始化的,所以主函数一运行,类就加载了,所以静态代码块就先加载运行了。此处就有 a
然后运行的构造带买块,之后就是构造函数,但这两个是给对象进行初始化的,你主函数中并没有建立对象,只是直接类名调用功能,所以上述两个函数就没有执行,直接进行类中功能调用。此处就有 hah
作者:
段金福
时间:
2014-7-27 17:48
调用方便,可用class.调用
作者:
vaqh
时间:
2014-7-27 17:58
打印结果是:
a
hah
因为 静态代码块是用来初始化类的,类一加载它就会运行,所以先输出a;然后你调用了静态的方法show(),所以会打印hah
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2