Exception in thread “main“ java.lang.Error: Unresolved compilation problem

记录一次编译报错:

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
at l.Main.main(Main.java:5)

一直以为是main函数出了问题,找了很多次都不对;结果发现
,包名不对,真想锤自己!

我的java文件是放在l下面,而我却写了一个不存在的东西,自然是不对的,而编译报错却把我误导了。说到底,是对package的概念不够清晰。下面有一些包的概念

  1. 当我们没有使用package语句时,我们的类都被放到了一个默认缺省包,这也是为什么我们运行Java程序时,在运行目录下面不能有同名的.class文件。
  2. 包,可以理解成文件夹,因为它是一种树形结构的路径,当我们用package把包声明到某个package下面时,我们也要把它的.class放到以该package为名字的目录下,否则将找不到类。
  3. 有包的类和无包的类互相访问有以下规则:(1)无包的类可以访问有包的类, 直接导入即可;(2)有包的类无法访问无包的类, 直接访问是找同一个包中的, 由于不同包需要导入, 而无包的类无法导入;(3)在定义类的时候, 为了让别人都能使用到,所以一定要定义一个包。
  4. Java的包表面上看(从路径上看)是有等级的,但实际上并没有,比如java.awt,java.awt.color是两个地位相同的包。java.awt.color并不属于java.awt。
  5. package的作用就是 c++ 的 namespace的作用,防止名字相同的类产生冲突。Java编译器在编译时,直接根据package指定的信息直接将生成的class 文件生成到对应目录下。例如package aaa.bbb.ccc
    编译器就将该 .java 文件下的各个类生成到 /aaa/bbb/ccc/
    这个目录下。Java中的一个package(包)就是一个类库单元,包内包含有一组类,它们在单一的名称空间之下被组织在了一起。这个名称空间就是包名。

所以说学编程手动打码真的很重要!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值