问题描述
private JPanel contentPane;
private JTextField textField;
然后我在文本字段中使用了 getter
st.setString(1,textField.getText());
是否可以将 gui 组件(文本字段)声明为私有称为封装?
解决方法
是的,它算作封装。通过将 JTextField textField
字段声明为 private
,您可以防止从类外部直接访问它。其他类不知道 textField
字段或它是一个 JTextField
对象。他们不能依赖于现有的领域等;即没有耦合。他们不能直接读取或写入字段;即封装。
包含 textField.getText()
调用的代码必须是此类的一部分。据推测,这是类公共 API 实现的一部分。最坏的情况是封装的部分放松,以允许调用者看到文本。充其量只是 API 的一部分。
封装并不意味着“没有信息出来”。 (那是没用的!)这意味着访问被限制(通过设计)到必要的,并且(在适当的时候)由封装方法介导。这样可以更轻松地理解代码以及各个部分的交互方式,尤其是在代码库非常广泛的情况下。