静态方法是在new之前就已经加载到内存地址中了,再次new对象时候这些静态属性或者静态方法不会再分配新的内存地址了,这些静态属性或者静态方法在多个对象中是共用的。
public class Common {
private static String test = "123";
private String test1 = "456";
public static String getTest() {
return test;
}
public static void setTest(String test) {
Common.test = test;
}
public String getTest1() {
return test1;
}
public void setTest1(String test1) {
this.test1 = test1;
}
}
/*************test*************/
System.out.println("Common test = "+Common.getTest());
Common.setTest("abc");
System.out.println("Common test = "+Common.getTest());
Common com = new Common();
Common com1 = new Common();
System.out.println("------------------------------");
System.out.println("com test = "+com.getTest());
System.out.println("com1 test = "+com1.getTest());
System.out.println("com test1 = "+com.getTest1());
System.out.println("com1 test1 = "+com1.getTest1());
com.setTest("cccccccccc");
com.setTest1("dddddddddd");
System.out.println("------------------------------");
System.out.println("com test = "+com.getTest());
System.out.println("com1 test = "+com1.getTest());
System.out.println("com test1 = "+com.getTest1());
System.out.println("com1 test1 = "+com1.getTest1());
System.out.println("Common test = "+Common.getTest());
结果:
Common test = 123
Common test = abc
------------------------------
com test = abc
com1 test = abc
com test1 = 456
com1 test1 = 456
------------------------------
com test = cccccccccc
com1 test = cccccccccc
com test1 = dddddddddd
com1 test1 = 456
Common test = cccccccccc