java创建类(外部类)时被我忽略的那些事

前言

java是面向对象的,所以创建类真是在频繁不过的事儿了。小弟不才,一直在用eclipse做Java开发,某些大神在宣传ide好用,有机会去看看。

eclipse相信大家都很熟悉了,作为初学者的时候,真是太感激它了,不得不承认它给我们提供了很多方便,包括今天要讨论的话题——创建java类。

使用ecipse创建类大家都在熟悉不过了,但是做了某家公司的面试题,其中几道题突然让我意识到创建java类的时候我忽略了很多知识点。

java外部类权限修饰只能用public和default

在使用eclipse创建类的时候无意间发现这个问题,如图



后来自己敲代码创建一个外部类,发现确实不能用protected和private修饰,如图:


并且提示Illegal modifier for the class MainClassStudy; only public, abstract & final are permitted。我觉得吧,把一个外部类设成private权限,那它作为外部类还有什么意义?外部类就是要让其他类能访问到它,如果设成private权限的,其他类还怎么访问它?至于protected权限,我认为同理。

外部类可以不是public的

上学的时候我敬爱的java老师郑重的对我们说:每个.java文件中只能有一个public访问权限的类,不知不觉间,我竟然潜意识的误认为每个.java文件中必有一个public修饰的类。直到我遇到一到面试题问输出什么结果,由于类没有加public,且可选项中又有“程序报错“这个选项,然后我就在正确答案和这个答案之间徘徊。。。。。。说多了都是眼泪啊。经验证原来每个.java中声明的外部类可以不是public的,但是只能是public或default访问权限的。

public修饰的类的类名一定要和java文件名相同

还是我们java老师的那句话:每个.java文件中只能有一个Public修饰的类,然后我们java老师还有一句话,如果类是public的,它一定要和.java文件同名。如果在A.java中有类B,如果B不是public修饰的,那么预编译是不会报错的,如果B是public的,则会报错。但是在第一种情况即使不报错,运行A.java时会报找不到主类,因为jvm默认回去执行和.java同名的类的main函数。
第一次记录基础的知识,希望没有误人子弟,如有错误,希望大家给我指出来,还请大家口下留情啊,哈哈!


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值