无心流泪 2019-08-08 20:12 采纳率: 50%
浏览 359
已采纳

为什么javac编译的j,当Java类不是public的时候,当出现文件名与class名不一致的时候不会报错?

为什么用javac编译的java源文件时,当Java类不是public的时候,当出现文件名与class名不一致的时候不会报错,public的就会报错?

  • 写回答

3条回答 默认 最新

  • threenewbee 2019-08-08 22:27
    关注

    java语言为了简单,通过文件系统来组织包的结构。这是约定。

    作为对比,C#就不这么要求。于是C# 采用 namespace 而不是文件系统来组织包名。

    我的一个猜想,是因为微软的windows系统不区分大小写文件名,而Linux/Unix区分,所以Java最初是*nix的,就这么做了。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 已采纳回答 3月21日