黑马程序员技术交流社区

标题: Import - 导入和静态导入有区别吗? [打印本页]

作者: 沿途的记忆    时间: 2014-6-26 01:16
标题: Import - 导入和静态导入有区别吗?
Import - 导入和静态导入有区别吗?具体是个什么情况?
作者: 爨庚轩    时间: 2014-6-26 10:40
import 是导入指定包下某个类或全部类,import tatic 是导入某个类中的所有静态成员或指定的静态成员,包括静态成员变量和静态成员方法,
作者: Piston    时间: 2014-6-26 10:56
观看。。。。
作者: 龙泉长空    时间: 2014-6-26 21:07
看看....
作者: lijinhe    时间: 2014-6-27 16:44
一般都用import,很少用import static,    调用static只能在static类型中调用。
作者: 为爱编程    时间: 2014-6-27 23:11
技术分怎么增长
作者: 跑步先生    时间: 2014-6-29 09:52
不过,我想问为什么要用import static?
作者: zhanqq2010    时间: 2014-6-29 10:03
没有什么感觉  
作者: Running    时间: 2014-6-29 10:28
import语句可以导入一个类或某个包中的所有类。
import static 语句导入一个类中的某个静态方法或所有的静态方法。

一个是导入类,一个是导入静态方法。
作者: 死海古卷    时间: 2014-6-29 23:10
静态导入不常用
作者: 夏季熬成了秋    时间: 2014-6-29 23:11
看看 溜达着玩
作者: xp8812    时间: 2014-6-30 20:55
不进这个帖子,我都不知道什么是静态导入
作者: 死海古卷    时间: 2014-7-3 23:42
每日签到
作者: cheye0207    时间: 2014-7-4 02:04
又长见识了
作者: 渠嘉树    时间: 2014-7-4 08:02
爨庚轩 发表于 2014-6-26 10:40
import 是导入指定包下某个类或全部类,import tatic 是导入某个类中的所有静态成员或指定的静态成员,包括 ...

学习学习
作者: 崔MQ    时间: 2014-7-4 08:07
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方法上进行静态导入。
作者: ahuhxl    时间: 2014-7-4 11:07
表示没听说过
作者: wisely    时间: 2014-7-4 18:19
静态导入的是静态成员,一般是静态方法。普通导入的一般是类。明白什么是静态导入即可,咱们的程度估计用不到。
作者: jeromechen    时间: 2014-7-6 03:04
学习了,增长了知识点
作者: 超级小白    时间: 2014-7-8 01:20
16L 好详细  受教
作者: 唤月    时间: 2014-7-8 10:08
来过....

作者: rekirt    时间: 2014-7-10 00:00
一般的导入只是导入到类名,静态导入可以导入到方法,在书写时不用加类前缀,只有静态方法才可以使用静态导入
作者: 淡淡柠檬茶    时间: 2014-7-10 07:33
路过 走走。。。
作者: zxdanshui    时间: 2014-7-10 23:10
静态导入方法 学习了  第一次见到
作者: 李宗玛    时间: 2014-7-11 09:46
表示没用过静态导入
作者: 但愿''专注..    时间: 2014-7-20 14:37
dingyixia,,,,,,,




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2