java和objective C中导入的区别

java和objective C中导入的区别,java,objective-c,Java,Objective C,有人能告诉我我们在java中使用的导入与在objective C中使用的导入之间的区别吗? 在Java中,import long.package.name.Foo告诉编译器,任何时候Foo在当前源文件中显示为aa类名时,它实际上意味着long.package.name.Foo——因此import真正做的就是允许您编写更短的源代码。通过让类名与文件名匹配、包名与目录层次结构匹配的约定来查找类定义 在目标C中,#import语句实际上被预处理器替换为导入文件的内容,除非该文件已经导入(这是#impo

有人能告诉我我们在java中使用的导入与在objective C中使用的导入之间的区别吗?

  • 在Java中,
    import long.package.name.Foo
    告诉编译器,任何时候
    Foo
    在当前源文件中显示为aa类名时,它实际上意味着
    long.package.name.Foo
    ——因此
    import
    真正做的就是允许您编写更短的源代码。通过让类名与文件名匹配、包名与目录层次结构匹配的约定来查找类定义

  • 在目标C中,
    #import
    语句实际上被预处理器替换为导入文件的内容,除非该文件已经导入(这是
    #import
    和旧的
    #include
    指令之间的区别)

#import
#include
的一个变体(用于检查重复),它只会导致所包含文件的内容粘贴到源文件中


Java的import语句告诉编译器在何处查找源代码中未按全名限定的类(和其他内容)。

dup:@org:um,不,这个问题只涉及在Obj-C中导入和包含。这篇文章讨论了Java中的
import
与Obj-C中的
#import
。@BoltClock是独角兽好的,我很抱歉,这是否意味着在Java中,import不是写“long.package.name.Foo”来表示Foo,而是帮助我们很快地引用它。@Krishnan:是的,import就是这么做的。这就是它所做的。没有什么神奇的副作用(比如Perl的
使用
可能会有)值得警惕。谢谢Thilo和Michael的回复。