java-我可以在相同类的对象之间封装成员吗?
作者:互联网
私有访问仅允许同一类的对象访问它.但是,是否有任何方法可以限制类成员,使得只有所有者对象(而不论类如何)都不能访问它?
作为对现实世界对象的类比,您的臀部是您自己的私人财产,未经您的允许,没有其他人可以仅仅因为他/她是同伴而进入您的臀部.有没有一种方法可以在代码中实现呢?
注意:这是一个普遍的问题,但是由于我将在工作中同时使用Java和C,因此我想看看如何在每种语言中实现它.
解决方法:
[http://en.cppreference.com/w/cpp/language/access]
A private member of a class can only be accessed by the members and
friends of that class, regardless of whether the members are on the
same or different instances.
Java也是如此. [https://docs.oracle.com/javase/specs/jls/se7/html/jls-6.html#d5e8146]
A private class member or constructor is accessible only within the
body of the top level class
通过将编程规则强加到您的项目中可能有变通办法,涉及强制使用setter和getter,但是它们很难执行.
我个人唯一了解的例外是smalltalk编程语言,其中私有成员实际上对拥有它的对象是私有的.
标签:oop,encapsulation,java,c-4 来源: https://codeday.me/bug/20191119/2035824.html