2014-02-14 74 views
0

我对eclipse IDE中的术语及其用法感到困惑。与软件包和导入语句混淆,包括默认包

这是我的理解,您可以使用import关键字来引用特定类/ java文件称为包的一组类/ java文件。您还可以通过使用通配符修饰符结束导入语句的结尾来引用整组类/ java文件。那么为什么当你只需要在java src文件的顶部创建包声明而不是进行导入呢?

例如:

文件夹结构:MYAPP>显卡> .class1,.class2

,而不是这样做:import myapp.graphics.*

我们能做到这一点?:右package myapp

所以乳清甚至有导入关键字?你不能只使用包myapp,并引用该类与说class1 example = class1();

其次,我试图删除package com.example.myapp,只是用import myapp.graphics.*导入类,但它给了我一个错误,指出"" does not match the expected package com.example.myapp。其中一个修补程序是move MainActivity.java to a default package。我选择了该选项,并将其移至默认包,然后我可以使用import myapp.graphcis.*;语句,同时忽略package myapp.graphics语句而没有任何错误。

我很困惑。另外,什么是deauflt包?我在某处读到使用默认软件包是不好的做法。为什么?

谢谢。

+1

http://docs.oracle.com/javase/tutorial/java/package/packages.html – 2014-02-14 12:23:48

+0

我读过它,它说package关键字仅用于告诉编译器当前的java文件是编辑位于提及包中,并使用import关键字导入该包内的类或类。我对么? @尼克希尔乔希你的说法与这个解释冲突虽然。但是,你说你使用导入来只导入预先存在的类。 – user3292196

回答

0

据预言:

包是组织一组相关的类和接口 的命名空间。从概念上讲,您可以将软件包视为与计算机上的其他文件夹相似的 。您可以将HTML页面保存在一个 文件夹中,另一个中的图像以及另一个文件夹中的脚本或应用程序。 因为使用Java编程语言编写的软件可以是由数百或数千个单独的类组成的 ,所以通过将相关类和接口放入包中可以使事物保持组织。

因此,您可以将软件包视为组织者,与进口无关。

默认包根本没有包。当您将该字段留空时,Eclipse会提醒您。使用它是不好的做法,因为

使用默认包可能会创建名称空间冲突。想象一下,你正在创建一个包含MyClass类的库。有人在他的项目中使用了 您的图书馆,并且在他的 默认包中也有一个MyClass类。编译器应该做什么? Java中的包是 实际上是一个完全识别您的项目的名称空间。所以它是 重要的是不要在现实世界的项目中使用默认包。

Why shouldn't we use the (default)src package?

+0

请使用'>'引号和反引号或4个空格缩进代码 – 2014-02-14 12:30:26

+0

谢谢,完成(更改格式) – GreySwordz

+0

感谢您的解释。 – user3292196

0

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

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

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

例如,如果NoPackage.java包含导入com.assertcheck.AssertTesting; then AssertTesting的参考文献NoPackage类。

但是在AssetTesting类不能导入/使用NoPackage