You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

所有成员变量与方法均为public的Java类是否属于封装类?

这个类算不算封装类?

首先得明确,Java里封装的完整定义不只是把代码和数据打包成一个单元,更核心的是隐藏类的内部状态(成员变量),只通过类提供的公共方法来访问或修改这些状态——这样才能保证数据安全,也方便后续维护。

来看你给出的这个类:

public class AddNumbers {
     public int a;
     public int b;

     public void add(){
          System.out.println(a+b);
     }
}

它确实把数据(a、b)和方法(add)放在了同一个类里,满足“代码与数据包装为单一单元”这个表层要求,但完全没做到封装的核心:

  • 成员变量a和b都是public的,外部代码可以直接读写它们,比如随便给a赋值一个负数、或者不符合业务逻辑的值,这个类根本管不了。
  • 类无法对自身数据的修改做任何校验、也没法在数据变化时执行额外逻辑,完全失去了封装的意义。

所以结论是:这个类不属于符合规范的封装类。封装的关键是对内部状态的保护,而不是简单的代码和数据的物理聚合。

内容的提问来源于stack exchange,提问作者akshay lonkar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 17:50:21