【每日一坑】下面输出的应该是什么结果(static成员变量)

package test_1023;
class T{
	static int i=0;
	int j=0;
	T(){
		i++;
		j=i;
	}
}
public class Demo18 {
	public static void main(String[] args) {
		T t1=new T();
		T t2=new T();
		T t3=new T();
		System.out.println(t1.i+" "+t1.j);
		System.out.println(t2.i+" "+t2.j);
		System.out.println(t3.i+" "+t3.j);
	}
}

******************************答案分割线 ********************************

什么原因呢?

用static产生了,共用一份i的效果,体会下面的实时变换图

		T t1=new T();
		//t1.i=1  t1.j=1
		T t2=new T();
                //t2.i=2  t2.j=2
		T t3=new T();
                //t3.i=3  t3.j=3
                System.out.println(t1.i+" "+t1.j);
                 //t1.i=3  t1.j=1
		System.out.println(t2.i+" "+t2.j);
                 //t2.i=3  t2.j=2		
                System.out.println(t3.i+" "+t3.j);
                 //t3.i=3  t3.j=3
发布了104 篇原创文章 · 获赞 165 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_43914278/article/details/102757720