当前位置: 首页 > 面试题库 >

为什么在实例(Java)上调用方法时不需要导入类

谭高峯
2023-03-14
问题内容

让我感到困惑的一个例子:

Thing.java:

import java.util.Date;

class Thing { 
    static Date getDate() {return new Date();}
}

(相同的程序包)TestUsesThing.java:

// not importing Date here.

public class TestUsesThing {

    public static void main(String[] args) {
        System.out.println(Thing.getDate().getTime()); // okay
        // Date date = new Date(); // naturally this wouldn't be okay
    }

}

为什么没有必要导入Date以便能够在其中之一上调用getTime()?


问题答案:

只需要用Java导入,这样,Date如果您键入,编译器就会知道a 是什么。

Date date = new Date();

导入与#include在C / C ++中不同。classpath上的所有类型都 可用
,但是您import不必为了编写完全限定的名称而使用它们。在这种情况下,这是不必要的。



 类似资料:
  • 问题内容: 在下面的代码中,为什么我需要导入但可以不导入就可以使用? 问题答案: 为了方便起见,Java编译器会为每个源文件自动导入两个完整的软件包: java.lang包和 当前包(当前文件的包)。 请参考 oracle.com了解更多信息(http://docs.oracle.com/javase/tutorial/java/package/usepkgs.html)

  • 假设我有以下代码: 是否有可能在中调用来自的的编译器错误?我知道实际上你会把那个方法放在构造函数中,但这个问题是出于好奇。

  • 问题内容: 当我不再需要在程序中使用那些ResultSet和Connection的实例时,为什么还要对它们都调用.close()方法呢? 不这样做有什么危险(如果有)? 问题答案: 这里有两个问题: 数据库连接 保持数据库连接打开会消耗数据库上的资源。它使用内存,并且数据库被配置为具有最大数量的连接,因此您增加了连接用尽的可能性。此外,会话的状态也得到维护,因此您可能会遇到意外锁定超出其预期范围的

  • 我和同事一起创建了一个Angular 5应用程序。我为我的所有界面创建了一个文件夹,并按功能进行分组。然而,我没有在它们上包含任何导出符号,并且在使用它们时,我从不需要导入它们……它们只存在,不会产生任何编译错误。我喜欢这种方式,因为它使代码更干净,但我只是在利用一些bug吗?我的同事以“正确”的方式完成了它,并且需要在任何时候导入他想要使用的界面。有什么想法吗?您应该如何创建存在于单独文件中的接

  • 问题内容: 我在理解类中方法的含义时遇到问题。在下面的代码中,如果我使用该方法,则不使用它也会得到相同的结果。 为什么(或何时)需要使用它? 问题答案: 只创建一个对象 方法由调用

  • 但代码不起作用。我是否需要将launchActivity定义为一个规则,或者是否存在我需要在Gradle中导入的库? 这些是我已经有的进口品