仅包含私有(private)成员的 Java 类

标签 java oop encapsulation information-hiding

最近我遇到了一个情况,需要创建一个自定义VideoView到我的安卓应用程序。我需要访问 MediaPlayer 对象并添加一些监听器。

不幸的是(对我来说),VideoView 类的所有成员都是私有(private)的,因此即使扩展该类也无法帮助我访问其 MediaPlayer 对象(或其他任何对象),我必须完全复制类与我的修改。

好吧,虽然听起来我在提示“辛苦工作”,但在这种情况下它比扩展类更容易(因为所有源代码都是可用的......),但这让我真的怀疑这一点信息隐藏的方法。 这比让主要组件可供修改/访问( protected ,非公开的)更好吗?我的意思是,我明白,如果我扩展 VideoView 类,有一天也许他们会改变VideoView 类和我可能会遇到麻烦,但如果他们更改该类,我自己的(重复)版本将与 VideoView 类有更大的差异,并且我的目标不是创建我自己的视频 View ,而是扩展可用的VideoView。

最佳答案

当程序员将某些东西设为私有(private)时,他们就打赌没有其他人需要使用或覆盖它,因此信息隐藏将会带来返回。有时这个赌注不会成功。这是休息时间。

关于仅包含私有(private)成员的 Java 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5770903/

相关文章:

java - 如何在Android中解析JSON数组(不是Json对象)

Objective-C:使用实例变量覆盖 Getter 和 Setter(使用 _)

Javascript继承封装,高效完成

java - 在同一个类的方法中使用封装getter

oop - 为什么面向对象中的方法是 "private"?

java - 将日期排序为字符串 Java

java - 如何使用查找/替换正则表达式在 intellij 中的字符串中的每个 Camel 大小写字符后插入 _ 字符?

需要 JavaScript OOP 辅助

c++ - C++ 中有没有办法创建 'super private' 变量?

java - 运行类测试的输出是什么? (Java,抽象类)