package classDemo;
/**
* 内部类访问外部静态变量
* @author Administrator
*
*/
public class GroupThree {
private static int count;
private String name;
public class Student{
private int count;
private String name;
public void output(int count){
count++;
this.count++;
GroupThree.count++;
GroupThree.this.count++;
System.out.println(count+" "+this.count+" "
+GroupThree.count+" "+GroupThree.this.count);
}
}
public Student aStu() {
return new Student();
}
public static void main(String[] args) {
GroupThree g3 = new GroupThree();
GroupThree.count=10;
GroupThree.Student s1 = g3.aStu();
s1.output(5);
}}输出的结果是 6 1 12 12前面给出的两个解毋庸置疑,但是后面给出的12,是什么原因呀??
/**
* 内部类访问外部静态变量
* @author Administrator
*
*/
public class GroupThree {
private static int count;
private String name;
public class Student{
private int count;
private String name;
public void output(int count){
count++;
this.count++;
GroupThree.count++;
GroupThree.this.count++;
System.out.println(count+" "+this.count+" "
+GroupThree.count+" "+GroupThree.this.count);
}
}
public Student aStu() {
return new Student();
}
public static void main(String[] args) {
GroupThree g3 = new GroupThree();
GroupThree.count=10;
GroupThree.Student s1 = g3.aStu();
s1.output(5);
}}输出的结果是 6 1 12 12前面给出的两个解毋庸置疑,但是后面给出的12,是什么原因呀??
解决方案 »
- 请问现在做使用SSH开发用的是哪些版本
- java 多线程 请教 望点化
- 访问权限问题?
- 能有帮助注释的朋友么? 谢谢了
- java终止进程问题
- 急,如何用java程序读取sqlserver的数据?错误如下,请大家帮忙看看
- 急!!请求高手门帮忙~!~一道java程序题(在线等解)
- 向高手求教:Swing中JTree的使用
- 高分在线,谁能帮我解决,我把所有的分都奉献出去!!!java 转换中的中文问题
- 有趣的工具,希望有兴趣有空闲的朋友来练练手。
- 请教一个“Swing界面”的代码运行效果与预期不符的原因...
- 想找个java方面的实习或工作一定得会Ajax和SSh吗?在校也没怎么学这方面的内容啊,自己也还没看。是不是一定得会才行啊?
GroupThree.count++;
GroupThree.this.count++;
这两行代码中的count实际均为private static int count;
我想你不明白的地方在这里GroupThree.this,你认为这个是Student对象吧?其实不是,它是指GroupThree使用new创建出来的对象。
public void output(int count){
count++;
this.count++;
GroupThree.count++;
System.out.println(count+" "+this.count+" "
+GroupThree.count+" "+GroupThree.this.count);
GroupThree.this.count++;
System.out.println(count+" "+this.count+" "
+GroupThree.count+" "+GroupThree.this.count);
}添加进去,再运行看结果你就知道为什么不是11了!因为++了两次!然后才输出的!
楼主,你要我说什么呢?
既然GroupThree.count++;和GroupThree.this.count++;是指向同一个对象,那么两次++操作就想到于增加了2呗。你给赋的值是10,10+2=?。