在开发我最近的项目时,我发现了一些违反我理解的封装和可见性规则的东西。
在我的 GUI 类中,我为我的应用程序中的文本字段和按钮创建了几个类变量,并将它们全部设置为私有。我还为返回私有成员值的按钮和文本字段设置了 getter。在我的SqlStatements
课堂上,我参考了吸气剂,然后打电话setText()
getter 上调用方法,它会更改私有成员字段的值。这怎么可能?
例如:
public class InitGUI {
public static JTextField getfNameField() { <---- getter for JTextField
return fName;
}
private static JTextField fName; <---- JTextField variable.
}
public class SqlStatements {
// how is this able to change the value of a private member?
InitGUI.getmNameField().setText("");
}