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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 沿途的记忆 中级黑马   /  2014-6-26 01:16  /  2467 人查看  /  25 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

Import - 导入和静态导入有区别吗?具体是个什么情况?

25 个回复

倒序浏览
import 是导入指定包下某个类或全部类,import tatic 是导入某个类中的所有静态成员或指定的静态成员,包括静态成员变量和静态成员方法,
回复 使用道具 举报
观看。。。。
回复 使用道具 举报
看看....
回复 使用道具 举报
一般都用import,很少用import static,    调用static只能在static类型中调用。
回复 使用道具 举报
技术分怎么增长
回复 使用道具 举报
不过,我想问为什么要用import static?
回复 使用道具 举报
没有什么感觉  
回复 使用道具 举报
import语句可以导入一个类或某个包中的所有类。
import static 语句导入一个类中的某个静态方法或所有的静态方法。

一个是导入类,一个是导入静态方法。
回复 使用道具 举报
静态导入不常用
回复 使用道具 举报
看看 溜达着玩
回复 使用道具 举报
不进这个帖子,我都不知道什么是静态导入
回复 使用道具 举报
每日签到
回复 使用道具 举报
又长见识了
回复 使用道具 举报
爨庚轩 发表于 2014-6-26 10:40
import 是导入指定包下某个类或全部类,import tatic 是导入某个类中的所有静态成员或指定的静态成员,包括 ...

学习学习
回复 使用道具 举报
import static静态导入是JDK1.5中的新特性。一般我们导入一个类都用 import com…..ClassName;而静态导入是这样:import static com…..ClassName.*;这里的多了个static,还有就是类名ClassName后面多了个 .* ,意思是导入这个类里的静态方法。当然,也可以只导入某个静态方法,只要把 .* 换成静态方法名就行了。然后在这个类中,就可以直接用方法名调用静态方法,而不必用ClassName.方法名 的方式来调用。

这种方法的好处就是可以简化一些操作,例如打印操作System.out.println(…);就可以将其写入一个静态方法print(…),在使用时直接print(…)就可以了。

但是这种方法建议在有很多重复调用的时候使用,如果仅有一到两次调用,不如直接写来的方便

example:
在Java 5中,import语句得到了增强,以便提供甚至更加强大的减少击键次数功能,虽然一些人争议说这是以可读性为代价的。这种新的特性成为静态导入。当你想使用static成员时,可以使用静态导入(在API中的类和你自己的类上,都可以使用该特性)。下面是静态导入前后的代码实例:

在静态导入之前:

public class TestStatic {
public static void main(String[] args) {
System.out.println(Integer.MAX_VALUE);
System.out.println(Integer.toHexString(42));
}
}
在静态导入之后:
import static java.lang.System.out;
import static java.lang.Integer.*;
public class TestStaticImport {
public static void main(String[] args) {
out.println(MAX_VALUE);
out.println(toHexString(42));
}
}
两个类都产生相同的输出:
2147483647
2a
让我们看一下使用静态导入特性的代码中将发生什么:
1、虽然该特性通常称为“静态导入”,但语法必须是import static,后面跟你想导入的static成员的完全限定名称,或者通配符。在本例中,我们在System类的out对象上进行静态导入。

2、在本例中,我们可能想使用java.lang.Integer类的几个static成员。该静态导入语句使用通配符来表达“我想在此类中的所有静态成员上进行静态导入”。

3、现在我们终于看到静态导入特性的好处!我们不必在System.out.println中键入System。太好了!另外,我们不必在Integer.MAX_VALUE中键入Integer。因此,在这行代码中,我们能够将快捷方式用于静态方法和一个常量。

4、最后,我们进行更多的快捷操作,这次针对Integer类的方法。

关于该特性,我们已经有点儿讽刺意味儿了,但不仅我们是这样的。我们不认为节省少量的击键次数会让代码难于阅读一点,但许多开发人员要求将它添加到语言中。

下面是使用静态导入的几条原则:

你必须说import static, 不能说static import。
提防含糊不清的命名static成员。例如,如果你对Integer类和Long类执行了静态导入,引用MAX_VALUE将导致一个编译器错误,因为Integer和Long都有一个MAX_VALUE常量,并且Java不会知道你在引用哪个MAX_VALUE。
你可以在static对象引用、常量(记住,它们是static 或final)和static方法上进行静态导入。
回复 使用道具 举报
表示没听说过
回复 使用道具 举报
静态导入的是静态成员,一般是静态方法。普通导入的一般是类。明白什么是静态导入即可,咱们的程度估计用不到。
回复 使用道具 举报
学习了,增长了知识点
回复 使用道具 举报
16L 好详细  受教
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马