用Java导入单个类

时间:2013-02-26 14:28:53

标签: java import

简单的问题,但即使用谷歌搜索了很多我也找不到答案。

是否可以在包外导入类?

假设我有2个文件夹AB,每个文件夹中都有.java个文件,是否可以使用import子句导入A中包含的类{1}}? import A.Aclass?或者只要有关键字import,就必须使用包语法?

5 个答案:

答案 0 :(得分:2)

是的,可以使用import语句导入该类。为了更好地理解,我们假设您有三个文件夹folderafolderbfolderc,其中foldera包含名为“ClassA.java”的.java文件,{{1包含另一个名为“folderb”的.java文件,ClassB.java包含一个名为“folderc”的.java文件。现在,如果您想在“ClassC.java”中使用“ClassA.java”的成员数据和操作,则可以使用ClassC.java语句,如下所示:

import

如果您想使用会员数据& “ClassC.java”中“ClassB.java”的操作也可以使用import语句

import foldera.ClassA

根据java源文件声明规则,如果类是包的一部分,import folderb.ClassB 语句必须是源代码文件中的第一行,在任何package语句之前出席。在此示例中,import源文件的第一行必须为"ClassC.java",因为它位于package folderc中。同样,folderc源文件的第一行必须为"ClassA.java"package foldera源文件的第一行必须为"ClassB.java"

希望你现在明白这个概念! 谢谢......

答案 1 :(得分:1)

好吧,如果该类被定义为具有package a;,那么您需要使用包名称导入该类。如果你有两个包含一个具有相同名称的类的包,那么在你的类中需要调用它们中的每一个,你需要使用一个完全限定的名称。例如:

import a.Foo;
import b.Foo;

public class Bar
{

    public static void main(String[] args)
    {
        a.Foo aFoo = new a.Foo();
        b.Foo bFoo = new b.Foo();
    }
}

或者,如果你有两个包含相同名称的包,你可以简单地跳过它们,而是用它们的完全限定名(FQN-s)来使用它们。

如果班级没有package ...;,则只需将其导入为:

import Foo;

但是,如果你有两个包含相同FQN-s的类的包(来自不同的库),那么将选择类路径中的第一个包。

请注意,命名包的约定是使用小写字母和类 - 名称应以类名称中每个单词的大写字母开头。

答案 2 :(得分:0)

是的,这是可能的。

如果您有以下内容:

包装:PackA

课程:ClasA

执行:

导入PackA.ClassA; //导入类

OR

导入PackA。*; //导入包中的所有类

答案 3 :(得分:0)

是的,您必须使用包语法。

  • 导入文件夹A内的所有课程。

    import com.pack.A.*;
    
  • 导入文件夹A内的特定类。

    import com.pack.ClassName;
    

答案 4 :(得分:0)

是的,可以导入包

语法

import pck.ClassA or import pck.*