[英]How do compilers perform information hiding and encapsulation?
创建Java类定义时,可以使用private
, public
, protected
和其他关键字来控制如何访问成员和方法:
public class Bowel{
private Movement privatePoop = new Movement(1);
public Movement publicPoop = new Movement(2);
...
}
在为privatePoop
和publicPoop
方法及成员创建字节码时,编译器有何不同之处? 如果某人从外部尝试访问privatePoop
,它如何知道/向JVM表示他们不应该这样做?
基本上,已编译的类和成员被标记为public,private等。这是纯粹的语法保护:编译器不会编译来自封闭类外部的对private成员的访问。 您可以在运行时通过反射绕过所有这些。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.