Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 与包和导入语句(包括默认包)混淆_Java_Android_Eclipse - Fatal编程技术网

Java 与包和导入语句(包括默认包)混淆

Java 与包和导入语句(包括默认包)混淆,java,android,eclipse,Java,Android,Eclipse,我对EclipseIDE中的术语及其使用感到困惑 我的理解是,您可以使用import关键字引用一组名为包的类/java文件中的特定类/java文件。您还可以通过在import语句的末尾使用通配符end来引用整个类/java文件组。那么,当您可以在JavaSRC文件的顶部生成package语句而不必进行导入时,为什么要这样做呢 例如: 文件夹结构:myapp>graphics>.class1、.class2 不要这样做:导入myapp.graphics。* 我们可以这样做吗?:打包myapp 那么

我对EclipseIDE中的术语及其使用感到困惑

我的理解是,您可以使用import关键字引用一组名为包的类/java文件中的特定类/java文件。您还可以通过在import语句的末尾使用通配符end来引用整个类/java文件组。那么,当您可以在JavaSRC文件的顶部生成package语句而不必进行导入时,为什么要这样做呢

例如:

文件夹结构:myapp>graphics>.class1、.class2

不要这样做:导入myapp.graphics。*

我们可以这样做吗?:打包myapp

那么乳清甚至有import关键字?你不能仅仅使用包myapp并引用类,比如class1 example=class1

第二,我试图删除com.example.myapp包,只导入带有import myapp.graphics.*的类,但它给了我一个错误,说明与预期的包com.example.myapp不匹配。修复方法之一是将MainActivity.java移动到默认包。我选择了这个选项,它将它移动到一个默认包中,然后我就可以使用import myapp.graphcis.*;语句,同时省略包myapp.graphics语句,没有任何错误

我很困惑。还有,什么是“脱胎包”?我在某个地方读到,使用默认包是不好的做法。为什么?

谢谢。

根据oracle:

包是组织一组相关类和 接口。从概念上讲,您可以认为包与 计算机上的不同文件夹。您可以将HTML页面保存在一个页面中 文件夹、另一个文件夹中的图像以及另一个文件夹中的脚本或应用程序。 因为用Java编程语言编写的软件可以 它由成百上千个单独的类组成,使 通过安排相关的课程和课程来保持事物的条理性 接口到包中

因此,您可以将包视为组织者,与导入无关

默认包根本不是包。当您将字段留空时,Eclipse会警告您这一点。使用它是不好的做法,因为

使用默认包可能会创建命名空间冲突。假设您正在创建一个包含MyClass的库。有人用 您的库在他的项目中,并且在他的项目中还有一个MyClass类 默认包。编译器应该做什么?Java中的包是 实际上是一个完全标识项目的名称空间。所以是 重要信息:不要在实际项目中使用默认包

包-类所在的位置。它用于构建完全限定的类名

导入-用于合并预先存在的类,通过使用它,您可以利用它们的功能

默认包-直接位于src文件夹下的位置,例如:src\NoPackage.java

例如,如果NoPackage.java包含import com.assertcheck.AssertTesting;然后AssertTesting是NoPackage类下的引用


但是,在AssetTesting类中,您不能导入/使用NoPackage。

我读过它,它说package关键字仅用于告诉编译器您正在编辑的当前java文件在提到的包中,您可以使用import关键字导入该包中的一个或多个类。我说得对吗@Nikhil Joshi you的陈述与此解释相冲突。但是,您是说您使用导入仅导入预先存在的类。请使用>作为引号和反勾号,或使用4空格缩进作为代码。如果它回答了您的问题,请将其标记为已解决;包与导入无关的说法是不正确的。包对于导入非常重要,因为它们有助于确定哪些需要导入,哪些不需要导入。我的意思是,你不能通过声明一个包来导入一些东西。我很困惑。你能用import关键字同时导入.java和.class文件吗;文件夹,以及同一目录中名为custom.java的文件中的自定义类。所以我首先要做的是包com.example.myapp;然后使用import com.example.myapp.custom;导入该类;?如何在项目中使用自定义类。我知道您可以直接将类代码键入.java源文件。或者您可以使用package explorer上下文菜单中的new>class创建新类。如何引用外部类?