sha*_*ess 3 java getter-setter
可能重复:
属性和封装
NEWB提醒!!
我从Android和Java开始,我开始理解它,但我想知道为什么我应该使用getter和setter而不仅仅是公共变量?
我看到许多人创建了一个私有变量并创建了一个get和set方法.
这里有什么想法?
它被称为封装和概念是面向对象编程的核心.这个想法是你隐藏你的类的实现并只暴露契约,即隐藏如何,只揭露什么.您可以通过将变量设为私有来隐藏变量,并提供公共setter-getters和客户端调用以与您的类进行通信的其他公共方法.它们与方法的实际实现或存储变量的方式无关.
例如,假设您有这个类,您将电话号码存储为Long对象:
public class ContactInfo {
private Long phoneNo;
public Long getPhoneNo() {
return phoneNo;
}
public void setPhoneNo(Long phoneNo) {
this.phoneNo = phoneNo;
}
}
Run Code Online (Sandbox Code Playgroud)
由于该类的客户端只能看到getter/setter,因此您可以通过将电话号码表示切换到PhoneNumber对象来轻松更改类/方法的实现.ContactInfo的客户端根本不会受到影响:
public class ContactInfo {
private PhoneNumber phoneNo;
public Long getPhoneNo() {
return phoneNo.getNumber();
}
public void setPhoneNo(Long phoneNo) {
this.phoneNo = new PhoneNumber(phoneNo);
}
}
public class PhoneNumber {
private Long number;
public PhoneNumber(Long number) {
this.number = number;
}
public Long getNumber() {
return number;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
375 次 |
| 最近记录: |