java的import与C++的#include浅析

    相信很多人对这两者的到底有什么不同都不了解,而我搜了一下相关文章,单独介绍的很多,但把这两者做对比的不多。我就根据自己的理解写一下,希望大家指正我的不足。

    首先,要说java的import就需要说一下package,package就相当于我们的姓,class就像是我们的名字。package名字很长的时候就类似复姓。例如:java.lang.String,可以理解为复姓为java.lang,名字叫做String。而且,按照Sun的规范取名字,理论上每个人创建的类名字都不会相同,也就不会发生命名冲突。

    但是这个时候就出现问题了,复杂的程序和继承使得很多类的名字非常长,这样在写程序的时候就会变得麻烦,于是乎,import就来了。import就是在程序开始的时候说明会用到哪些类,写的时候就可以直接写它的名字,而不用写它的姓了。还是看java.lang.String。如果没有 import java.lang.String 。那么我们在每次创建String对象时都得写java.lang.String  string = new blah blah。而现在只需String string=new blah blah。是不是一下子简单了很多。所以,这就是import的作用,简化代码,编程方便,就这么简单,编译器也不会把import所导入的类写到.class中。具体的分为单类型导入和按需类型导入,本文侧重比较import和#include,不再做具体的介绍了。网上的讲解很多。

   C++中,include是预处理器的一部分,所谓预处理,顾名思义就是在编译器之前运行。一个源文件,.c .cpp和它所包含的文件一起,在经过预处理之后就形成一个源码文件,标准的叫法是translation unit(编译单元),它包括一系列的声明和定义。一个程序由若干(>=1)编译单元组成。编译器将各个编译单元编译为目标代码(.obj),通过linker(连接器)将这些目标代码连接成完整的指令序列(可执行文件、静态库、动态库等)。所以,#include后的头文件名,预处理过后是写到了编译单元里的,这和java有着本质的不同。


  本文为作者原创,不足之处请留言指正,转载请附http://write.blog.csdn.net/postlist


  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值