我对eclipse IDE中的术语及其用法感到困惑。
据我了解,您可以使用import关键字来引用一组名为packages的类/ java文件中的特定类/ java文件。您还可以通过在import语句末尾结束使用通配符修饰符来引用整组类/ java文件。那么为什么要在java src文件的顶部创建package语句而不必进行导入呢?
例如:
文件夹结构:myapp> graphics> .class1,.class2
而不是这样做:import myapp.graphics.*
我们可以做到这一点吗?:package myapp
所以乳清甚至有import关键字?难道你不能只使用包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包?我在某处读到使用默认包是不好的做法。为什么呢?
感谢。
答案 0 :(得分:0)
根据oracle:
包是一个命名空间,用于组织一组相关的类和 接口。从概念上讲,您可以将包视为类似于 您计算机上的不同文件夹。您可以将HTML页面保持为一个 文件夹,另一个中的图像,以及另一个中的脚本或应用程序。 因为用Java编程语言编写的软件可以 它由数百或数千个单独的类组成 通过放置相关课程来保持井井有条的感觉 接口到包中。
因此,您可以将包视为组织者,与进口无关。
默认包根本没有包。当您将该字段留空时,Eclipse会向您发出警告。使用它是不好的做法,因为
使用默认包可能会创建命名空间冲突。想象一下,您正在创建一个包含MyClass类的库。有人用 你的图书馆在他的项目中也有一个MyClass课程 默认包。编译器应该怎么做? Java中的包是 实际上是一个完全标识您的项目的命所以这是 在现实世界的项目中不使用默认包很重要。
答案 1 :(得分:0)
套餐 - 班级所在的位置。它用于构建完全限定的类名。
导入 - 用于合并预先存在的类,通过使用它,您可以利用它们的功能。
默认包 - 直接位于src文件夹下的位置,例如:src \ NoPackage.java
例如,如果 NoPackage.java 包含import com.assertcheck.AssertTesting; ,则 AssertTesting 是 NoPackage 下的引用强>上课。
但是,在 AssetTesting 课程中,您无法导入/使用 NoPackage 。