一、什么是getter和setter?
概述
在编程中,特别是在面向对象编程(OOP)中,getter和setter是两种常用的方法(或称为函数),用于访问和修改对象的私有属性。它们提供了一种控制和验证对象状态的机制,使得外部代码不能直接访问或修改对象的内部状态,而是通过这些方法来进行。
Getter方法:
Getter 方法用于获取对象的属性值。它们通常没有副作用(即,它们不会改变对象的状态),只是返回属性值。Getter 方法通常命名为 get
后跟属性名,例如,对于一个名为 name
的属性,getter 方法可能命名为 getName()。
Setter方法:
Setter 方法用于设置对象的属性值。它们通常接受一个参数,这个参数是新的属性值,并将其赋值给对象的属性。Setter 方法允许在赋值前进行一些验证或转换,从而确保对象状态的正确性。Setter 方法通常命名为 set
后跟属性名,例如,对于一个名为 name
的属性,setter 方法可能命名为 setName(String name)。
二、Getter和Setter的代码示范
1、首先,我们需要在IntelliJ IDEA Community Edition中新建一个类:Person。
我们以一个人的姓名、性别、年龄为标准,打出以下代码:
2、在IntelliJ IDEA Community Edition中可以快速生成getter和setter的代码:
按住shift键再使用鼠标左键就可以进行选择需要使用getter方法和setter方法的代码
完成上述图片的步骤就可以得到以下代码:
3、得到代码后还需进行修饰:
4、我们新建一个类:zhixing 来运行完成的代码:
由此,我们对getter方法和setter方法进行了简单的使用。
三、Person类和zhixing类的代码
Person
public class Person { private String name; private String sex; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSex() { return sex; } public void setSex(String sex) { if ("男".equals(sex) || "女".equals(sex)) { this.sex = sex; } else { throw new IllegalArgumentException("性别只能是'男'或'女'"); } } public int getAge() { return age; } public void setAge(int age) { if (age > 0) { this.age = age; } else { throw new IllegalArgumentException("年龄必须是正数"); } } public String getInfo() { return "姓名:" + name + ",性别:" + this.sex + ",年龄:" + age; } }
zhixing
public class zhixing { public static void main(String[] args) { Person person = new Person(); person.setName("小明"); person.setSex("男"); person.setAge(25); System.out.println(person.getInfo()); } }
四、总结
通过上述的简单的文字解释及图片示例,相信大家会对getter方法和setter方法有一定的了解。其中更深奥的用法还需要大家自己去深入、了解。
使用 Getter 和 Setter 的好处
- 封装:隐藏对象的内部状态,只暴露必要的接口。
- 数据验证:在setter方法中可以对数据进行验证,确保对象状态的有效性。
- 灵活性:可以在getter和setter方法中添加日志记录、触发事件等额外功能。
- 调试和维护:通过集中管理属性的访问和修改,更容易进行调试和维护。
通过使用getter和setter方法,程序员可以更好地控制对象的状态,并确保对象的行为符合预期。