27 封装详解(属性访问方法)_javabean的概念_get和set方法

 欢迎来到@一夜看尽长安花 博客,您的点赞和收藏是我持续发文的动力

对于文章中出现的任何错误请大家批评指出,一定及时修改。有任何想要讨论的问题可联系我:3329759426@qq.com 。发布文章的风格因专栏而异,均自成体系,不足之处请大家指正。

    专栏:

文章概述:对 getset 方法的介绍

关键词getset 方法

本文目录

“访问器”(getters)和“修改器”(setters)

1. get 方法

2. set 方法

使用 get 和 set 方法的好处

JavaBean的封装演示

“访问器”(getters)和“修改器”(setters)

在Java中,getset 方法是用来访问和修改类的私有成员变量的常用方法。这些方法通常被称为“访问器”(getters)和“修改器”(setters)。它们提供了一种控制类内部数据访问的机制。

1. get 方法

  • 功能:获取类的私有成员变量的值。
  • 命名规则:通常以 get 开头,后跟成员变量的名字(首字母大写),例如 getName()
  • 返回类型:与成员变量的类型相同。
  • 方法体:返回私有成员变量的值。

2. set 方法

  • 功能:设置类的私有成员变量的值。
  • 命名规则:通常以 set 开头,后跟成员变量的名字(首字母大写),例如 setName(String name)
  • 参数类型:与成员变量的类型相同。
  • 方法体:将传入的参数值赋给私有成员变量。

使用 getset 方法的好处

  1. 封装:通过将数据的访问和修改逻辑封装在方法中,可以控制对类成员变量的直接访问。
  2. 验证:可以在 set 方法中添加验证逻辑,确保数据的有效性。
  3. 维护:更改数据存取逻辑时,只需修改方法实现,而不必修改使用这些方法的代码。

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);
    }
}

执行结果:

  • 7
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值