class Test{
static int n=20;
final int nn;
final int k=40;
ca(){
nn=++n;
}
}
public class FinalDemo1{
public static void main(String args[]){
ca m1=new Test();
ca m2=new Test();
System.out.println("m2.nn="+m2.nn);
System.out.println("m2.k="+m2.k);
System.out.println("m1.nn="+m1.nn);
System.out.println("m1.k="+m1.k);
}
}
运行结果
m2.nn=22
m2.k=40
m1.nn=21
mi.k=40这是书本的例题 书本说final修饰的最终数据成员的值在执行过程中是不能改变的 那为什么nn会变呢?
就算nn会变 为什么m2.nn的值会22呢? 不是应该m1.nn=22 m2.nn=21吗?
到底这个程序的运行顺序是先m2还是先m1??
static int n=20;
final int nn;
final int k=40;
ca(){
nn=++n;
}
}
public class FinalDemo1{
public static void main(String args[]){
ca m1=new Test();
ca m2=new Test();
System.out.println("m2.nn="+m2.nn);
System.out.println("m2.k="+m2.k);
System.out.println("m1.nn="+m1.nn);
System.out.println("m1.k="+m1.k);
}
}
运行结果
m2.nn=22
m2.k=40
m1.nn=21
mi.k=40这是书本的例题 书本说final修饰的最终数据成员的值在执行过程中是不能改变的 那为什么nn会变呢?
就算nn会变 为什么m2.nn的值会22呢? 不是应该m1.nn=22 m2.nn=21吗?
到底这个程序的运行顺序是先m2还是先m1??
解决方案 »
- 前辈,请帮个忙写一个设置界面背景的源代码,谢谢
- 已知二叉树层次遍历字符串和子节点数,求二叉树
- 分解String时,split和Scanner的区别,我不是特别明白。
- 怎么设置默认按钮???
- 关于线程的问题,请大家指教。
- 这样算不算是抽象类实例化了呢
- 利用反射,将一个javaBean生成一张表,如何解决java类型与mssqlerver2000类型转换问题?
- 农村人请教,为什么不能关闭pstm.close();呢,一关闭就出现了 java.lang.NullPointerException
- 送分了!进来看看吧!
- Applet之间如何进行类似窗体的切换?
- POI导出百万条数据到Excel,要怎么弄啊?急~!!!急~!!!
- 又来求帮助了。。这个好像是树遍历? 求高手找规律
至于m1和m2的运行顺序就简单了,先new m1 nn=21,n变成21,再new m2 nn= 22
至于运行结果 就太简单了吧
nn在创建实例时就确定不变了,改变的是n,n是static的,且,创建一个实例,n就会加1