初学Java不久,刚才在读Thinking in java时,发现一段代码很奇怪,P类可以不用实例化就直接调用方法,我感觉是需要先用new实例化一个对象再调用方法才对啊,哪位高手能指点一下?
*下面是书中的代码
//: com:bruceeckel:tools:P.java
// The P.rint & P.rintln shorthand.
package com.bruceeckel.tools;
public class P {
public static void rint(String s) {
System.out.print(s);
}
public static void rintln(String s) {
System.out.println(s);
}
} ///:~
你可以使用这个便捷工具来打印String,无论它是否需要换行(P.rintln( ))。
你可以猜到,这个文件的位置一定是在某个以一个CLASSPATH位置开始,然后接着是
com/bruceeckel/tools的目录下。编译完之后,你就可以用import语句在你系统
上的任何地方使用P.class文件了。
//: c05:ToolTest.java
// Uses the tools library.
import com.bruceeckel.tools.*;
import com.bruceeckel.simpletest.*;
public class ToolTest {
static Test monitor = new Test();
public static void main(String[] args) {
P.rintln("Available from now on!");
P.rintln("" + 100); // Force it to be a String
P.rintln("" + 100L);
P.rintln("" + 3.14159);
monitor.expect(new String[] {
"Available from now on!",
"100",
"100",
"3.14159"
});
}
} ///:~
參考答案:注意static 关键字.静态方法不依赖实例的状态,无需实例化.
调用一个静态方法就是“类名.方法名”,静态方法的使用很简单如你所示。一般来说,静态方法常常为应用程序中的其它类提供一些实用工具所用,在Java的类库中大量的静态方法正是出于此目的而定义的。