最近发现了static的一个有趣用法,代码如下:
package com.zhxk.chapter1; public class Import { private static String str1 = "I'm private str1"; public static String str2 = "I'm public str2"; static String str3 = "I'm default str3"; public static void print(String str) { System.out.println(str); } }
package com.zhxk.chapter1; import static com.zhxk.chapter1.Import.*; public class TestImport { public static void main(String[] args) { // print(str1); // The field Import.str1 is not visible print(str2); print(str3); print("test"); } }
package com.zhxk.chapter1; public class TestImport2 { public static void main(String[] args) { // TestImport.print(); // compile error } }
通过这种方式,我们给TestImport类静态加载了Import类的所有静态内容,
然后,我们就可以在TestImport中直接使用Import的print方法或者str2和str3。
当然这些静态变量和方法需要是可见地。
同时我们也发现TestImport2不能通过TestImport使用print方法。