JAVA 中get,set方法理解

getterssetters 方法(Accessor methods)是JAVA中的基本用法。顾名思义,是对数据进行设置和获取。通常的使用规范是先定义一个private 变量,然后为这个私有变量添加公有的setXX()getXX() 方法。例如:

1
2
3
4
5
6
7
private String name;
public void setName(String name){
this.name = name;
}
public String getName(){
return name;
}

那为什么不直接定义为公有的 public String name; 变量呢?

在stackoverflow上发现有人提出了同样的问题why-use-getters-and-setters

其实,Accessor methods 相当于在调用者和对象属性间添加了一层逻辑层,可以进行访问权限控制和逻辑判断等,实现面向对象编程中封装性和信息隐藏。
可以方便在这setter方法中 限制和验证setter 方法传入的参数,可以因此对象内部的数据结构,保持对象在每个状态的完整性。在getter中可以按需要返回格式化的数据。
例如:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
private String name;
private String firstName;

public void setName(String name){
this.name = name;
}

public String getName() {
return firstName + name;
}

public String getFirstName() {
return firstName;
}

public void setFirstName(String firstName) {
if(firstName==null){
System.out.println("不正确的姓");
}else{
this.firstName = firstName;
}
}

如果觉得对您有帮助,就扫我交个朋友吧!