关于import包的规范问题

来源:7-2 使用包管理 Java 中的类

慕粉1550466909

2017-01-28 15:48

我生成了一个名为“TelPhone2”的包,下面有一个类Telphone,之后在包名为“com.imooc”下面初始化一个Telphone类,但是我发现采用“import TelPhone2.Telphone;”和“import TelPhone2.*;”效果是不一样的,前者是调用的TelPhone2中定义的构造方法,而后者调用的是com.imooc包下定义的构造方法,请问这是为什么啊?

写回答 关注

2回答

  • 桥米
    2017-02-21 11:14:05

    TelPhone2包是com.imooc包的子包吧,我也遇到这个问题了,导入TelPhone2.*结果调用的是其上级包imooc中的类Telephone

  • 慕数据4330221
    2017-01-28 15:57:09

    因为 第一个 你明确的指出了 是 import TelPhone2.Telphone; 这个包下的类 所以使用的是这个类 而如果你使用导入的包名是import TelPhone2.*;后面的*号 指的是所有的import TelPhone2下面的类 所以会出现你说的那种情况 ,建议是 指向明确

    慕粉1550...

    您可能没明白我的意思,我是问在采用“import TelPhone2.*;”应当是我调用包TelPhone2中的所有类,那么这个语句的适用范围应当是大于“ import TelPhone2.Telphone; ”的,按理说在生成一个Telphone类的对象的时候应当也调用的是TelPhone2.Telphone的构造函数,但运行后发现实际上调用的是我本包也就是com.imooc包下定义的构造函数,所以觉得很奇怪

    2017-01-29 07:03:35

    共 1 条回复 >

Java入门第二季 升级版

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

531107 学习 · 6311 问题

查看课程

相似问题