黑马程序员技术交流社区
标题:
import和静态导入有啥区别?我怎么越看越不清楚了
[打印本页]
作者:
林豪
时间:
2012-5-18 14:41
标题:
import和静态导入有啥区别?我怎么越看越不清楚了
比如 import java.System.*;和import static java.Sysem.*;
既然普通导入已经导入了System包了为什么用的时候还要System.xxx?
还有静态导入对那些不是静态的方法有效吗?
作者:
李保成
时间:
2012-5-18 14:46
静态导入是JKD1.5后新加的功能,一般不怎么常用,很简单给你举个例子你就能明白了,看这段代码:
import static java.lang.System.out;//导入java.lang包下的System类的静态方法out;
public class HelloWorld{
public static void main(String[] args){
out.print("Hello World!");//既是在这里不用再写成System.out.println("Hello World!")了,因为已经导入了这个静态方法out。
}
}
import xxxx 和 import static xxxx的区别是前者一般导入的是类文件如import java.util.Scanner;后者一般是导入静态的方法,import static java.lang.System.out;
作者:
余宏
时间:
2012-5-18 15:10
import static 是静态导入,是jdk1.5的新特征,可以不通过调用包名,直接使用包里的静态方法。
使用静态导入可以使代码效率更高,可读性更强,
所谓静态导入,当然只对静态方法有效。
作者:
付信榕
时间:
2012-5-18 15:26
导包的目的就是为了简写类名或其方法。楼主可以这样理解: import java.System.*;所有类名(写完整的名)都有java.System.以后都不用在写这么长了,一开始就把它都提取出来告诉jvm了,jvm就识别的到了。而import static java.Sysem.*;是简写类名中有static的名字。总结就是, import java.System.*;虽然导如了静态的内容,但没有完全简化到连static都省掉的地步,所以import static java.Sysem.*;就是连static都提取出来,简化到可以直接写方法就能被jvm识别的地步。所以要有必要导两次包
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2