繁体   English   中英

编译器如何执行信息隐藏和封装?

[英]How do compilers perform information hiding and encapsulation?

创建Java类定义时,可以使用privatepublicprotected和其他关键字来控制如何访问成员和方法:

public class Bowel{
  private Movement privatePoop = new Movement(1);
  public Movement publicPoop = new Movement(2);

  ...
}

在为privatePooppublicPoop方法及成员创建字节码时,编译器有何不同之处? 如果某人从外部尝试访问privatePoop ,它如何知道/向JVM表示他们不应该这样做?

基本上,已编译的类和成员被标记为public,private等。这是纯粹的语法保护:编译器不会编译来自封闭类外部的对private成员的访问。 您可以在运行时通过反射绕过所有这些。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM