一般通过new创建类对象,才会分配存储空间,方法才被外界调用
public class hello { public static void main(String[] args){ people p1 = new people(); p1.i ++; System.out.println(p1.i); people p2 = new people(); System.out.println(p2.i); System.out.println(p1.i == p2.i); } public static class people { int i = 10; } }
这里分别输出11,10,false
也就是说这里p1.i和p2.i指向了不同的存储空间,所以++只对p1.i生效,从最后两个对象判断是否相等为false也可以看出来
但是假如在定义之前加上static关键字,就可以将字段或者方法设置为static,就算创建了两个类对象p1,p2,会共享一个i,字段p1.i和p2.i也会共用一份存储空间
public class hello { public static void main(String[] args){ people p1 = new people(); p1.i ++; System.out.println(p1.i); people p2 = new people(); System.out.println(p2.i); System.out.println(p1.i == p2.i); } public static class people { static int i = 10; } }
这里输出为11,11,true