目录
前言
setter和getter是面向对象程序设计中的术语,用于实现封装性和安全性。它们分别代表设置器和获取器。
setter和getter的主要目的是使应用中的数据(属性)不能被直接访问。这样可以防止不安全的改变数据的情况发生,并且可以提供更严格的对数据的控制。setter和getter方法也有助于维护代码的可读性和可维护性,因为可以在方法内部实现对属性值的验证和处理逻辑
一、如何添加getter setter方法
在大多数面向对象编程语言中,添加getter和setter方法通常很简单,只需遵循以下步骤:
-
在类中定义一个私有属性。
-
创建一个公共的 setter 方法,以接受一个参数并将其分配给私有属性。
-
创建一个公共的 getter 方法,以返回私有属性的值。
以下是一个基本的示例,说明如何添加getter和setter方法:
public class Person {
private String name; // 私有属性
// setter方法
public void setName(String newName) {
this.name = newName;
}
// getter方法
public String getName() {
return this.name;
}
}
在此示例中,我们为Person类添加了一个私有属性“name”,然后在类中定义了一个公共setter方法和一个公共getter方法,以允许外部代码设置和获取“name”属性的值。然后,我们可以通过以下方式使用它:
Person person = new Person();
person.setName("John"); // 设置name属性的值
System.out.println(person.getName()); // 输出John,获取name属性的值
在生产环境中,如果需要对setter和getter方法进行额外的处理,可以使用注解或AOP(面向切面编程)来实现对这些方法的切面处理
二、getter方法
1.getter方法的定义
返回对象内部的成员变量的值
用来读取私有属性的值,通常以get开头,后面跟上属性名,不带参数,返回属性的值。
public type getValue(){
return value;
}
其中type
代表属性的类型,getValue()
为方法名,value
为对象属性名。Getter方法通常被用于获取一个对象的私有属性值,因为私有属性不能被直接访问。
2.getter方法的格式
[访问修饰符] 成员变量类型 getXxx(){
return 成员变量;
}
例下图:
三、setter方法
1.setter方法的定义
用来设置成员变量,可以在方法里面过滤掉一些不合理的值
用来设置私有属性的值,通常以set开头,后面跟上属性名,参数为要设置的值,无返回值。
public void setValue(type value){
this.value = value;
}
其中type
代表属性的类型,setValue()
为方法名,value
为对象属性名。Setter方法通常被用于为一个对象的私有属性设置值,因为私有属性不能被直接访问。
2.setter方法的格式
[访问修饰符] 成员变量类型 getXxx(){
成员变量=参数;
}
四、getter与setter中代码处理
getter、setter用于读取和写入成员变量值,可在方法中增加代码进行数据处理
*使用setter可以对输入的数据进行检验
*使用getter可以对读出的数据进行处理
Getter和Setter方法通常被用于封装对象属性,以保证数据的安全性和可维护性。它们遵循Java语言的“面向对象”编程原则,即“封装”,“继承”和“多态”
五、getter与setter的使用
假设有一个Person类,包含私有属性name和age,可以使用getter和setter方法如下:
public class Person {
private String name;
private int age;
public String getName() { // getter方法
return name;
}
public void setName(String name) { // setter方法
this.name = name;
}
public int getAge() { // getter方法
return age;
}
public void setAge(int age) { // setter方法
this.age = age;
}
}
通过调用对象的getter和setter方法,可以获取和设置其私有属性的值,例如:
Person person = new Person();
person.setName("Tom"); // 设置name属性的值为Tom
person.setAge(18); // 设置age属性的值为18
System.out.println(person.getName()); // 输出Tom
System.out.println(person.getAge()); // 输出18
例下图:
六、setter和getter的作用
1.封装数据
setter和getter方法允许我们在外部访问某些成员变量时,对其进行封装,隐藏其实现细节。
2. 数据验证
通过setter方法,我们可以对某些成员变量进行数据验证,以确保其符合业务逻辑和规范。
3.访问控制
setter和getter方法可以根据需要限制对成员变量的访问,比如只读、只写或读写。
4. 简化代码
通过getter方法,我们可以获取成员变量的值,而不需要直接访问成员变量本身,从而简化代码。
总的来说,setter和getter方法有助于提高代码的可维护性、可读性和可扩展性。
七、异常处理
— 声明异常 —
public void setAge(int age) throws Exception
—抛出异常—
throw new Exception("年龄不符合要求");
—捕获异常—
try{
//可能出现异常代码
s1.setAge(30);
s1.setSex("男");
System.out.printf("年龄为%d,性别为%s\n",s1.getAge(),s1.getSex());
}catch(Exception e){
//异常代码处理
System.out.println(e.getMessage);
- 在方法内部进行数据校验,如果发现不符合要求的数据,则抛出异常。例如:
public void setAge(int age) throws IllegalArgumentException { if (age < 0 || age > 150) { throw new IllegalArgumentException("Age must be between 0 and 150"); } this.age = age; }
在这个例子中,如果尝试将年龄设置为负数或大于150,就会抛出一个IllegalArgumentException异常。
- 在方法声明中使用throws关键字,将异常抛给调用者处理。例如:
在方法声明中使用throws关键字,将异常抛给调用者处理。例如:
在这个例子中,如果在设置年龄的过程中发生了IOException异常,就会被抛给调用者处理。
要是我哪里做得不足,大家也可以去别人那里看看,这是链接:
Getter和Setter是什么?有什么作用?实现多种数据类型的Getter、Setter方法?实现Getter、Setter的常见的错误?_getter setter-CSDN博客
今天的文章javasetter和getter_java的gui有必要学吗分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/85611.html