【JAVA】getter与setter方法的定义与使用

目录

一、如何添加getter setter方法

二、getter方法

1.getter方法的定义

2.getter方法的格式

三、setter方法

1.setter方法的定义

2.setter方法的格式

四、getter与setter中代码处理

五、getter与setter的使用

六、setter和getter的作用

七、异常处理


前言

setter和getter是面向对象程序设计中的术语,用于实现封装性和安全性。它们分别代表设置器和获取器。

setter和getter的主要目的是使应用中的数据(属性)不能被直接访问。这样可以防止不安全的改变数据的情况发生,并且可以提供更严格的对数据的控制。setter和getter方法也有助于维护代码的可读性和可维护性,因为可以在方法内部实现对属性值的验证和处理逻辑

一、如何添加getter setter方法

在大多数面向对象编程语言中,添加getter和setter方法通常很简单,只需遵循以下步骤:

  1. 在类中定义一个私有属性。

  2. 创建一个公共的 setter 方法,以接受一个参数并将其分配给私有属性。

  3. 创建一个公共的 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 成员变量;
}

例下图: 0870e0749b814fc8b6da0a4f4af61c50.png

三、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

例下图:

0ef6079757174d2da5c8ca03ecc58cf5.png

六、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);
  1. 在方法内部进行数据校验,如果发现不符合要求的数据,则抛出异常。例如:
    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异常。

  2. 在方法声明中使用throws关键字,将异常抛给调用者处理。例如:
    在方法声明中使用throws关键字,将异常抛给调用者处理。例如:

    在这个例子中,如果在设置年龄的过程中发生了IOException异常,就会被抛给调用者处理。

要是我哪里做得不足,大家也可以去别人那里看看,这是链接:

Getter和Setter是什么?有什么作用?实现多种数据类型的Getter、Setter方法?实现Getter、Setter的常见的错误?_getter setter-CSDN博客

 

  • 9
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值