Java中的其它包无法引用缺省类(Default Package)里的类

本文探讨了Java中defaultpackage与自定义包的区分,重点在于如何理解缺省包内的类在不同包结构中的引用规则,以及如何导致Main.java无法访问DefaultPackageTest.java。通过实例展示了包声明对类间调用的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Java中的其它包无法引用缺省类(Default Package)里的类

  1. 模拟环境如下图所示:
    在这里插入图片描述

简单描述:lib目录下的default-package-jar.jartestjar.jar包都是自己打包生成的。它们的主要区别在于:前者的DefaultPackageTest.java这个类是直接在其所在目录的根目录下创建的,而后者的Rubbish.java,A.java, B.java几个类都是在com.nisifan目录(即,不是根目录)下创建的。因此,DefaultPackageTest.java是属于default package(缺省类)的。

再看当前工程下,有Main.javaMain01.java两个类。而Main01.java在当前工程的根目录下,因此它也属于default package。所以,Main01.java中能引用DefaultPackageTest.java类,但Main.java不能引用它,因为它属于com.mytest包。

Main.java 如下图所示:
在这里插入图片描述
如图所示,由于它在com.mytest包中(即第一行的 package com.mytest),所以不能调用DefaultPackageTest类。

Main01.java 如下图所示:
在这里插入图片描述
如图所示,由于Main01.java属于default package(因为并没有 package xxx这行代码),所以它能调用同为default package的DefaultPackageTest类。

以上。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值