`
liumiao2011
  • 浏览: 53125 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

[转]import static和import的区别

 
阅读更多

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));
	}
}

 

两个类都产生相同的输出:

1.2147483647  

2.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方法上进行静态导入。
分享到:
评论

相关推荐

    欧柏泰克:Java包的静态导入import static和import的区别

    欧柏泰克:Java包的静态导入import static和import的区别 Java中的静态导入是Java 5中引入的一项新特性,允许开发者在编写代码时更方便地使用静态方法和成员变量。下面我们来详细地了解Java中的静态导入和普通导入...

    Kotlin 包和 import 语句

    尽管 Kotlin 没有直接的 `import static` 语法,但它提供了一种方式来导入 Java 类中的静态方法。例如: ```kotlin import java.util.Arrays.sort ``` 对于 Kotlin 类中的静态方法(即伴生对象中的方法),则可以...

    java中package和import的作用

    在Java编程语言中,`package`和`import`是非常重要的两个概念,它们分别用于组织代码结构和引入外部类或包,对于理解Java程序的模块化和包管理机制至关重要。 ### Java中的Package #### 1. Package的概念 在Java中...

    jekyll-contentful-data-import, Contentful static 站点生成器的插件.zip

    jekyll-contentful-data-import, Contentful static 站点生成器的插件 Jekyll-Contentful-Data-Import Contentful 为数字团队提供内容基础设施,以支持网站,应用程序和设备中的内容。 CMS不同,Contentful是用来...

    java-package与import机制

    通过深入理解Java中的`package`和`import`机制,不仅可以帮助我们更好地组织和管理代码,还能有效避免命名冲突,提高代码的可读性和维护性。此外,正确设置`classpath`环境变量对于编译和运行Java程序至关重要。希望...

    import java.net.*;import java.io.*;

    import java.net.*; import java.io.*; public class udptest { ///创建一个数据包套接字对象ds,并且指定连接的端口号 ///创建一个数据包对象dp ///指定一个字节数组,用来存储接受的数据 public static void ...

    大数据必学Java基础(三十八):包和import讲解

    在Java编程语言中,包(Package)和import语句是组织和管理代码的重要机制,尤其在处理大数据项目时,良好的代码结构和管理显得尤为重要。本文将深入探讨这两个概念及其在大数据Java基础中的应用。 一、生活案例 就...

    Java中import语句.pdf

    - **使用`import static`**:对于静态成员,可以使用`import static`引入,这有助于避免命名冲突,因为静态导入的成员是直接在当前作用域中可用的。 总之,`import`语句是Java编程中不可或缺的一部分,它帮助我们更...

    Java深入历险(CH_05.package_与import_机制)

    在初学者尝试学习Java编程时,经常会遇到的第一个难题就是如何理解`package`和`import`机制。这两个概念对于顺利编写并运行Java程序至关重要。本文将深入探讨这两个核心概念,并通过具体的例子帮助读者掌握它们。 #...

    java视频 static关键字

    在Java编程语言中,`static`关键字是一个非常重要的修饰符,它有多种用途,涉及到类、对象以及变量和方法的生命周期。本视频教程详细讲解了`static`关键字在Java中的应用及其背后的原理。 首先,我们要理解`static`...

    Java面向对象(基础)-package和import关键字的使用

    在Java编程中,面向对象的特性是其核心之一,而包(package)和导入(import)关键字则是组织和管理代码的关键要素。这两个概念对于理解和编写大型Java项目至关重要。 一、package关键字的使用 1. 说明 `package`...

    Java认证:Java中import使用.doc

    #### 三、import与C/C++中的#include区别 在C/C++中,`#include`预处理器指令用于将其他源文件包含到当前文件中。这意味着被包含的文件内容会被复制到当前文件中,从而可能增加编译时间。而在Java中,`import`仅仅...

    Java里的static import使用小结

    Java中的`static import`语句是在JDK 1.5版本中引入的一个新特性,它允许程序员可以直接导入类中的静态成员(包括静态方法和静态变量),而无需指定类名。这个特性使得代码更加简洁,提高了可读性,但也可能带来一些...

    22_static video

    在这个视频教程中,可能涵盖了如何使用“static”关键字来声明和使用静态变量、静态方法,以及理解静态变量和实例变量的区别。它可能还会讲解如何在多线程环境中处理静态资源,以及避免可能出现的并发问题。此外,...

    Vue3的js代码:可放入static静态目录的js文件下使用前端vue框架

    Vue3的js代码:可放入static静态目录的js文件下使用前端vue框架

    Java零基础-package和import.md

    ### Java零基础-package和import详解 #### 一、引言 在Java编程中,随着项目的逐渐扩大,良好的代码组织和管理变得尤为重要。`package` 和 `import` 关键字是Java语言提供的两种基本机制,用于帮助开发者更好地...

    Java中import语句的测试代码清单.pdf

    以下是关于Java `import`语句的一些详细解释和示例。 1. **包的作用**: 包是Java中组织类的一种方式,它提供了命名空间,避免类名冲突。例如,`com.fancy.data_type` 和 `com.fancy.simple_examples` 是两个不同...

    在Eclipse中导入static元素Java开发Java

    6. 使用static import:Java允许使用`import static`语句,这会将指定类的静态成员直接引入当前作用域,无需类名前缀。但这应谨慎使用,因为它可能会导致命名冲突,降低代码可读性。 在实际开发中,合理地导入和...

    javaimport、package作用与用法.doc

    **2.4 Import与Include的区别** - 在C/C++中,`#include`预处理器指令用于包含其他文件中的代码到当前文件中。 - 在Java中,`import`仅仅是一种告诉编译器如何解析类名的方式,不会将其他文件的实际代码“包含”...

    ImportDemo.7z

    3.Virtual关键字不可以和static private delegate 方法一起使用。 iterface 接口 接口以I开头,后面以单词来重命名。 例如IComputer 接口不允许使用访问修饰符 pulbic private protected 接口不可以使用修饰符 ...

Global site tag (gtag.js) - Google Analytics