为什么这个程序能不用类名而直接调用方法?

来源:百度知道 编辑:UC知道 时间:2024/06/13 15:56:45
import static net.mindview.util.Print.*;

public class PrintTest {
public static void main(String[] args) {
print("Available from now on!");
print(100);
print(100L);
print(3.14159);
}
} /* Output:
Available from now on!
100
100
3.14159
*///:~

为什么不是Print.print(/*....*/)
//程序一
package net.mindview.util;
import java.io.*;

public class Print
{
public static void print(Object obj)
{
System.out.println(obj);
}
}

//程序二
import static net.mindview.util.Print;

public class PrintTest {
public static void main(String[] args) {
print("Available from now on!");
print(100);
print(100L);
print(3.14159);
}
}
为什么不是Print.print(/*....*/)

关键在这一行 import static net.mindview.util.Print.*;
里面的static。要注意这是JDK5引入的新特性之一,之前的版本并不支持这种方式,这种方式的导入叫静态导入,它的作用就是可以直接引用,而不需要给出类名。一个典型的例子:
import static java.lang.System.out;

public class Test {

public static void main(String[] args) {

out.print("hello,world");
}
}

有print这个东西不?