封装描述了对象向世界其他地方隐藏其数据和方法的能力,并且是面向对象编程的基本原理之一。在Java中,类封装了用于保存对象状态的字段和用于定义对象操作的方法。 另外,我们将这些字段声明为私有字段,以防止对象处于状态。
由于实用程序类仅包含功能(静态方法)而没有数据成员,因此可以说实用程序类不遵循封装机制吗?
答案 0 :(得分:2)
封装不是原理或机制。 Wikipedia在OOP上下文中将其描述为“ ...封装用于指代两个相关但截然不同的概念之一……”。
根据Wikipedia,这两个概念是:
- 一种语言机制,用于限制直接访问对象的某些组件。
- 一种语言构造,可促进将数据与对该数据进行操作的方法(或其他功能)捆绑在一起。
在(纯)实用工具类中,这两种方法都不适用。
但是要说“ ...实用程序类不遵循封装原理” 是错误的,因为这意味着封装在所有情况下都是一件好事。对于实用程序类,它根本不适用。
(“遵循机制”没有道理。)
现在,我将授予您这些年来,不同的人试图描述封装(以及信息隐藏和模块化)的特征,并且尚不清楚这些特征中的任何一个是特征性的权威。
这是“ ...实用工具类不遵循封装原理” 的命题被误导的另一个原因。封装的实际含义没有统一的定义。
答案 1 :(得分:0)
在Java中,实用程序类是定义一组执行通用功能的方法的类。按照OOP原则,对象应既包含数据又包含对数据执行的行为。实用程序类仅是行为,所有数据作为输入传递。绝不是面向对象的,它更像是一种过程化的思维方式。