欢迎来到@一夜看尽长安花 博客,您的点赞和收藏是我持续发文的动力
对于文章中出现的任何错误请大家批评指出,一定及时修改。有任何想要讨论的问题可联系我:3329759426@qq.com 。发布文章的风格因专栏而异,均自成体系,不足之处请大家指正。
专栏:
文章概述:对
get
和set
方法的介绍关键词:
get
和set
方法
本文目录:
“访问器”(getters)和“修改器”(setters)
在Java中,get
和 set
方法是用来访问和修改类的私有成员变量的常用方法。这些方法通常被称为“访问器”(getters)和“修改器”(setters)。它们提供了一种控制类内部数据访问的机制。
1. get
方法
- 功能:获取类的私有成员变量的值。
- 命名规则:通常以
get
开头,后跟成员变量的名字(首字母大写),例如getName()
。 - 返回类型:与成员变量的类型相同。
- 方法体:返回私有成员变量的值。
2. set
方法
- 功能:设置类的私有成员变量的值。
- 命名规则:通常以
set
开头,后跟成员变量的名字(首字母大写),例如setName(String name)
。 - 参数类型:与成员变量的类型相同。
- 方法体:将传入的参数值赋给私有成员变量。
使用 get
和 set
方法的好处
- 封装:通过将数据的访问和修改逻辑封装在方法中,可以控制对类成员变量的直接访问。
- 验证:可以在
set
方法中添加验证逻辑,确保数据的有效性。 - 维护:更改数据存取逻辑时,只需修改方法实现,而不必修改使用这些方法的代码。
JavaBean的封装演示
public class Person {
// 属性一般使用private修饰
private String name;
private int age;
private boolean flag;
// 为属性提供public修饰的set/get方法
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public boolean isFlag() {// 注意:boolean类型的属性get方法是is开头的
return flag;
}
public void setFlag(boolean flag) {
this.flag = flag;
}
}
【示例】封装的使用
package basic_grammar;
class Person5 {
private String name;
private int age;
//无参构造器
public Person5() {
}
public Person5(String name, int age) {
this.name = name;
// this.age = age;//构造方法中不能直接赋值,应该调用setAge方法
setAge(age);
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setAge(int age) {
//在赋值之前先判断年龄是否合法
if (age > 130 || age < 0) {
this.age = 18;//不合法赋默认值18
} else {
this.age = age;//合法才能赋值给属性age
}
}
public int getAge() {
return age;
}
@Override
public String toString() {
return "Person5 [name=" + name + ", age=" + age + "]";
}
}
public class TestWrap {
public static void main(String[ ] args) {
Person5 p1 = new Person5();
//调用的是无参构造器
//p1.name = "小红"; //编译错误
//p1.age = -45; //编译错误
p1.setName("小安");
p1.setAge(20);
System.out.println(p1);
Person5 p2 = new Person5("小白", 300);
//调用有参构造器
System.out.println(p2);
}
}
执行结果: