“Import”被称为什么?

8

这不是一个语句或表达式。

那么这被称为什么?指令吗?


@SLaks... 我不知道... 嗯嗯,可能是保留字吧? - OscarRyz
这里是一个语句的引用:http://java.sun.com/docs/books/tutorial/java/package/usepkgs.html :( - OscarRyz
通常被称为“导入语句”,它似乎是:http://www.google.fi/search?q=java+%22import+statement vs http://www.google.fi/search?q=java+%22import+declaration - Jonik
@Jonik Yeap,我也这样称呼它(有时候也叫指令)。但不一定是正确的。顺便感谢您的编辑。 - OscarRyz
2
很好的问题。即使是JLS 7.5.1也犯了错误,它说“请注意,import语句不能导入子包,只能导入类型。”然而,如果你追踪语法产生,你很容易确认它实际上不是一个语句(显然!)。 - polygenelubricants
3个回答


6

1
在一般范围内,它是一个指令。 在Java中,类的声明与其包含文件(在Java架构中称为编译器单元)之间存在紧密关系。然而,导入语句早于Java。 当它在C语言中使用时,它是一个预处理器声明(Java中不存在该组件),用于“粘贴”文件到“此位置”。这允许我们在不定义它们的情况下“使用”声明(对于构造C源代码很重要),通过粘贴包含所有声明的“头”文件来实现,而将“定义”文件链接到以后的日期。这种布局样式允许实现共享彼此的已声明类型,而不会受到实际实现的影响(称为类型定义)。 Java继承了C的遗产,因此他们使用“import”关键字来定位类型声明;但Java实际上没有独立的声明和定义,选择从定义中“读取”声明。这是为了防止常见的C / C ++故障(编译针对声明的一个版本,使得代码在几乎相同的定义集(基于新版或旧版声明的)失败)。
所以,对于C/C++来说,预处理指令(相当于预处理命令)。
而对于Java来说,这是一个声明,因为该指令匹配了一个不再存在的预处理器命令,并且只允许每个包含文件中有一个声明,因此采用了限制性布局。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接