小段程序求解释!内部类
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,是什么原因呀??
              
------解决方案--------------------原因很简单:
GroupThree.count++;
GroupThree.this.count++;
这两行代码中的count实际均为private static int count;
我想你不明白的地方在这里GroupThree.this,你认为这个是Student对象吧?其实不是,它是指GroupThree使用new创建出来的对象。
------解决方案--------------------GroupThree.this.count 在以前的基础上加了一次。
------解决方案--------------------
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了!因为++了两次!然后才输出的!