为什么封装不在对象中/为什么我们称之为封装

时间:2016-10-20 14:11:30

标签: jvm encapsulation

在jvm中,函数被加载到方法区域,该区域在类加载时初始化,堆中的对象调用这些函数以提高性能。 encapsulation是数据成员和成员函数的绑定。在这种情况下,我没有看到对象级别的封装。 此外,如果一个类有数千个实例,可以一次又一次地共享相同的功能,因为该功能可以被视为各种对象共享的资源。
请澄清。

1 个答案:

答案 0 :(得分:0)

  

函数被加载到方法区域,该区域在类加载时间

初始化

Java没有函数,它只有始终与类关联的方法。如何加载这些方法取决于JVM。在HotSpot JVM中,可以在JVM的整个生命周期内多次优化和重建方法。

你不应该混淆一个类中的静态变量的初始化,这可以在不同的时间以不同的方式操作方法的代码。

  

encapsulation是数据成员和成员函数的绑定。

我不同意。在面向对象的编程中,封装是隐藏实现细节。对象上方法的调用者不需要知道如何实现该方法或使用哪些字段。

  

可以一次又一次地共享相同的功能,因为该功能可以被视为各种对象共享的资源。

方法是只读的,因此它们可以有任意数量的副本而且没有问题。因此,它们不是资源争用的来源。

  

方法和实例数据成员没有像在类

中那样绑定在一起

他们的确切方式并不重要。您需要知道的是,Object有一个类,该类有方法。任何数量的对象都可以具有相同的类,而不会影响性能。 (除了内存不足的可能性)

相关问题