A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

比如  import java.System.*;和import static java.Sysem.*;
既然普通导入已经导入了System包了为什么用的时候还要System.xxx?
还有静态导入对那些不是静态的方法有效吗?

3 个回复

倒序浏览
静态导入是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;

评分

参与人数 1技术分 +1 收起 理由
攻城狮 + 1 赞一个!

查看全部评分

回复 使用道具 举报
import static 是静态导入,是jdk1.5的新特征,可以不通过调用包名,直接使用包里的静态方法。
使用静态导入可以使代码效率更高,可读性更强,
所谓静态导入,当然只对静态方法有效。
回复 使用道具 举报
导包的目的就是为了简写类名或其方法。楼主可以这样理解:  import java.System.*;所有类名(写完整的名)都有java.System.以后都不用在写这么长了,一开始就把它都提取出来告诉jvm了,jvm就识别的到了。而import static java.Sysem.*;是简写类名中有static的名字。总结就是, import java.System.*;虽然导如了静态的内容,但没有完全简化到连static都省掉的地步,所以import static java.Sysem.*;就是连static都提取出来,简化到可以直接写方法就能被jvm识别的地步。所以要有必要导两次包
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马