public class Stack
{
static{a=6;}
static double a=3.234;
public static void main(String[] args)
{
System.out.println(a);
}
}
这个怎么输出3.234。"static{a=6;}"怎么理解?
{
static{a=6;}
static double a=3.234;
public static void main(String[] args)
{
System.out.println(a);
}
}
这个怎么输出3.234。"static{a=6;}"怎么理解?
解决方案 »
- java问题求解,急用!
- 求JDK下载地址
- 2009网易笔试一道题目
- 关于用ant 配合 javamake增量编译的问题,用过的高人请帮忙
- 可不可介绍一个有大量源代码程序例子的网址提供学习?
- 请问如何配置动态连接池?
- import netscape.javascript 要安装什么,提示找不到package
- 能同时ObjectInputStream中读出Object和byte型的数据吗?
- 请问javabean使用问题,我不知道错在那里?帮我!!!
- 输入与输出流,小弟学业不精,想请教大家一下
- 用java编写程序,发邮件
- 真心求救高人,本人现在有一个.dat的文件,是一个字典,每行一个词,我用java该怎么向字典里添加信息呢?
源代码改为public class Stack {
static double a = 3.234;//初始化语句
static {//初始化块
a = 6;
} public static void main(String[] args) {
System.out.println(a);
}
}打印结果为6.0结论: 按照类声明出现的次序,依次执行所有域初始化语句和初始化块
域初始化语句和初始化块 平级的,谁在先,先执行谁
所以 后面的会覆盖前面的
public class Tt {
{
a = 6;
}
double a = 3.234;
public static void main(String[] args) {
Tt tt = new Tt();
System.out.println(tt.a);
}
}输出3.234
package test;public class Tt {
double a = 3.234;
{
a = 6;
} public static void main(String[] args) {
Tt tt = new Tt();
System.out.println(tt.a);
}
}输出6.0例子全了
楼主懂了吗?
System.out.println(tt.a);
与
System.out.println(a);
有什么区别,运行上面那个是一样的。
tt和this 指的是同一对象。