我将以此作为序言,我相信我了解访问级别修饰符在 Java 中的工作原理。我的问题与在最终类中使用时受保护和包私有(无修饰符)之间的区别有关。
据我了解:
如果你将一个类声明为final,你就无法扩展它,这意味着它不会有任何子类
如果不向方法添加修饰符(包私有),则该方法仅在其自己的包中可见
如果您声明一个受保护的方法,则该方法只能在其自己的包中访问(与包私有一样),此外,还可以由另一个包中的该类的子类访问
我的问题是,如果你的类是final类,package-private和protected之间有什么区别吗?Final修饰符使得不能有任何子类,所以看起来另一个包中不能有子类。这意味着无论哪种情况,它都只会在自己的包中可见。
在最后一堂课上,两者之间有区别吗?
如果没有区别,是否应该使用其中一个而不是另一个,或者这并不重要?
我在学校"学习"了C++,但有几件我不知道的事情,比如编译器可以优化的地方或内容,似乎我已经知道了,inline并且const可以提升一点......
如果性能是一个重要的东西(例如游戏编程),那么放置类属性不是public(private或protected)允许编译器制作更优化的代码吗?
因为我之前的所有老师都在说它更"安全"或"防止不想要或授权的类访问/行为",但最后,我想知道放置属性是否public可以限制范围,从而加固事物.
我不批评我的老师(我应该),但我所在的编程班不是很先进......
据我所知,public/protected/private关键字对创建时间没有影响.但我想知道保持公共对象/类可访问应该有成本.它有成本吗?