简单的问题,但即使谷歌搜索了很多,我也找不到答案。
是否可以在包外导入类?
假设我有 2 个文件夹A,每个文件夹B都有一个.java文件,是否可以通过使用子句import导入包含在中的类A?import A.Aclass? 或者只要有关键字就必须使用包语法import?
是的,可以使用 import 语句导入类。为了更好地理解,我们假设您有三个文件夹foldera,其中包含一个名为“”的 .java 文件,包含另一个名为“ ”的 .java 文件,folderb以及一个名为“”的 .java 文件。现在,如果要使用“ ”中“ ”的成员数据和操作,可以使用如下所示的语句:foldercfolderaClassA.javafolderbClassB.javafoldercClassC.javaClassA.javaClassC.javaimport
import foldera.ClassA
如果要在“ClassC.java”中使用“ClassB.java”的成员数据和操作,也可以使用import语句
import folderb.ClassB
根据 java 源文件声明规则,如果类是包的一部分,则该package语句必须是源代码文件中的第一行,在import可能存在的任何语句之前。在这个例子中,源文件的第一行"ClassC.java"必须是package folderc因为它位于folderc. 同样,源文件的第一行"ClassA.java"必须是package foldera,源文件的第一行"ClassB.java"必须是package folderb.
希望现在你对这个概念很清楚!谢谢...
好吧,如果该类被定义为具有 apackage 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 的类,则将选择类路径中的第一个。
请记住,命名包的约定是使用小写字母和类——名称应该以类名中每个单词的大写字母开头。
对的,这是可能的。
如果您有以下情况:
包装:PackA
类别:A类
做:
导入PackA.ClassA;//导入类
或者
导入PackA.*;//导入包内的所有类
是的,您必须使用包语法。
导入文件夹内的所有类A。
import com.pack.A.*;
在文件夹中导入特定的类A。
import com.pack.ClassName;
是的,可以只导入包
句法
import pck.ClassA or import pck.*