getter和setter
getter 和setter
-
子类中为什么要写get和set方法获取释放数据,不写会怎样?在什么情况下要用getter和setter?
getter通常与一个私有的实例变量对应,用于返回该变量的值
public int getXxxx() { return "相应的实例变量"; }
setter通常与一个私有的实例变量对应,用于设置该变量的值
public void setXxxx(类型参数) { 实例变量=参数; }
其中 setXxx的参数类型通常要跟相应的实例变量类型相同。
通常,将实例变量私有化,并为其提供相应的getter和setter。
将实例变量私有化是为了隐藏类的实现细节,不对外暴露。
如果期望外部还能访问私有的实例变量,可以为其提供相应的getter和setter。
如果不期望外部能访问私有变量,则不需要提供相应的getter和setter。
如果父类中存在私有的实例变量,期望子类能够访问,则父类需要为这些实例变量提供相应的getter和setter。
-
如果成员变量是public修饰,还需要get和set方法吗?
不需要要,因为可以直接访问。
-
那为什么非要将成员变量私有化再提供getter和setter?
private intage;//字段(field) public int getNianLing() { return age; }
getNianLing()->去掉get和参数部分->NianLing NianLing->将首字母变小写->nianLing
这里得到的
nianLing
就是属性
(property)
private int x;//字段(field) public int getAge() {//实例变量x对应的getter returnx; }
getAge()->去掉get和参数部分->Age->将首字母变小写->age
这里得到的age就是属性
(property)
,它与x字段对应