跟着天极网的裴大哥学习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");
就是正确的。这个程序调用的都是类的静态方法,为什么一个需要创建对象,而一个不需要呢?感觉类型上两个程序都是一样的啊。求解答,谢谢!
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");
就是正确的。这个程序调用的都是类的静态方法,为什么一个需要创建对象,而一个不需要呢?感觉类型上两个程序都是一样的啊。求解答,谢谢!
解决方案 »
- 多线程问题
- Java se中,三个按钮切换是否可用,求助
- JAVA Socket的read问题
- 关于JAVA抽象类与子类的构造器的问题
- LINUX 下运行Tomcat出错,命令出现乱码
- ssh整合程序无法提交数据,分不够就加!!
- 第一次在Java块发贴:Java与C++在基本语法层面的不同。 希望指点。
- 见笑,提一个很白痴的问题,JAVA里面的关键字"extends" &"implement"有什么区别??多谢了
- 如何手动控制 打开 “Java控制台”?
- 如何通过File类得到文件的后缀名?
- 判断字符串1a2b3c4d5e6f格式是否正确,其中abcdef顺序可能互换,但只要是这六个字符就行
- 请问如何用正则表达式判断一个字符串是否含有一个特定的子字符串
你可以这样用那个静态方法
:
Print.prt("haha");
也是可以的
不用创建对象呵呵!