正常写程序时,一个类中如果要调用另一个类的静态方法和变量,我们可以通过类名.变量名或类名.方法名来访问,同时import 包名.类名;正常导入该类
如果通过静态导入该类的方式:import static 包名.类名;可以使被导入类的静态变量和静态方法在当前类直接可见,使用这些静态成员无需再给出他们的类名。
1、简化屏幕输出打印方法的静态类
package com.think.util;
import java.io.PrintStream;
/*
*
* @ClassName: Print
* @Description: 简化输出
* @author hejun
* @date 2017年6月1日 下午9:32:45
*/
public class Print {
// Print with a newline:
public static void print(Object obj) {
System.out.println(obj);
}
// Print a newline by itself:
public static void print() {
System.out.println();
}
// Print with no line break:
public static void printnb(Object obj) {
System.out.print(obj);
}
// The new Java SE5 printf() (from C):
public static PrintStream printf(String format, Object... args) {
return System.out.printf(format, args);
}
}
2、在其它类中调用该静态类,直接使用其静态方法
import static com.think.util.Print.*; //静态导入 直接调用该变量或方法 无需该类名调用
enum Shrubbery { GROUND, CRAWLING, HANGING } //枚举类型
/*
*
* @ClassName: EnumClass
* @Description: 枚举类的基本属性的用法
* @author hejun
* @date 2017年6月2日 上午10:04:05
*/
public class EnumClass {
public static void main(String[] args) {
for(Shrubbery s : Shrubbery.values()) {
print(s + " ordinal: " + s.ordinal());
printnb(s.compareTo(Shrubbery.CRAWLING) + " ");
printnb(s.equals(Shrubbery.CRAWLING) + " ");
print(s == Shrubbery.CRAWLING);
print(s.getDeclaringClass());
print(s.name());
print("----------------------");
}
// Produce an enum value from a string name:
for(String s : "HANGING CRAWLING GROUND".split(" ")) {
Shrubbery shrub = Enum.valueOf(Shrubbery.class, s);
print(shrub);
}
}
}
程序输出:
GROUND ordinal: 0
-1 false false
class com.think.enumdemo.Shrubbery
GROUND
----------------------
CRAWLING ordinal: 1
0 true true
class com.think.enumdemo.Shrubbery
CRAWLING
----------------------
HANGING ordinal: 2
1 false false
class com.think.enumdemo.Shrubbery
HANGING
----------------------
HANGING
CRAWLING
GROUND