跟着天极网的裴大哥学习JAVA,遇到一个关于类的静态方法使用的疑问,下面的这个程序用以列出当前系统参数
import java.util.*;
public class Property {
public static void main(String args[]){
System.out.println(new Date());
Properties p=System.getProperties();
p.list(System.out);
System.out.println("---Memory Usage:");
Runtime rt=Runtime.getRuntime();
System.out.println("Total Memory="+rt.totalMemory()
+"Free Memory="+rt.freeMemory());
}
}
其中的Properties p=System.getProperties();由于getProperties( )是System类的一个静态方法(static 方法),所以不必创建任何对象就可以调用该方法。再看下面的程序:
class Print {
static void prt(String s){
System.out.println(s);
}
}class Mfclass{
public static void main(String args[]){
Print P1=Print.prt("HEIHEI");
}
}
该程序运行错误,但是如果把最后一行代码,改成下面的形势
Print P1=new Print();
P1.prt("HEIHEI");
就是正确的。这个程序调用的都是类的静态方法,为什么一个需要创建对象,而一个不需要呢?感觉类型上两个程序都是一样的啊。求解答,谢谢!