java里getter和setter的作用和区别是什么?

简介:

java是典型的面向对象的编程语言,面向对象三个特性,继承性,多态性,封装性,主要和封装性考虑,类里面的变量不想设置成公共的类型,但是还要给外部使用在这种实用场景下,从编程技巧上加上方法来获取或者设置参数值,于是getter和setter就使用上了。

45cb39519e31e2bd8d2f76401344072220617c0d

增加两个方法保证了类结构的完整性以及安全性还是非常合算的做法,其实从框架上考虑增加这两个方法还能在实际编程过程中增加额外的功能作用,现在就根据实际编程中的经验做一些总结归纳:

1.可以通过setter方法检查下数据的准确性,比如是否越界之类的异常等等

2.可以在setter方法里面加上一些功能函数,主要在限定一些条件如果数值达到一定范围之后就开始做某些动作,选择的时机点正好在这个方法里面。

591bf0e6645f34aea81c9f6879a87f0e18d04989

3.加入涉及到多线程的操作,在setter方法里面正好做加锁的操作,正好是一个恰当的时机

4.由于是关键数值的变化,在这两个方法中加上打印非常适合追踪数据的变化,方便程序的判断。

以上四点是在项目推进过程中总结的,希望对于初学java的有所帮助。


原文发布时间为:2018-09-18

本文作者:东辉在线

本文来自云栖社区合作伙伴“程序员互动联盟”,了解相关信息可以关注“程序员互动联盟”。

相关文章
|
17天前
|
安全 Java
【JAVA】在 Queue 中 poll()和 remove()有什么区别
【JAVA】在 Queue 中 poll()和 remove()有什么区别
|
17天前
|
Java API
【JAVA】final、finally、finalize 有什么区别?
【JAVA】final、finally、finalize 有什么区别?
|
17天前
|
Java
【JAVA】throw 和 throws 的区别?
【JAVA】throw 和 throws 的区别?
|
2天前
|
Java 开发框架 XML
JDK、JRE、Java SE、Java EE和Java ME有什么区别?
JDK、JRE、Java SE、Java EE和Java ME有什么区别?
|
3天前
|
Java
java一分钟之-字符流与字节流的区别
【5月更文挑战第11天】Java的输入输出通过流操作,分为字符流和字节流。字节流处理二进制数据,如图片、音频,基类是`InputStream`和`OutputStream`;字符流处理文本,基类是`Reader`和`Writer`。字符流涉及编码转换,字节流不涉及。易错点包括乱码(需指定编码)、混用流类型和忘记关闭流。示例展示了字节流和字符流读文件。理解区别并注意编码和资源管理可提高代码质量。
33 3
|
5天前
|
安全 Java 编译器
Java中String、StringBuilder和StringBuffer的区别
Java中String、StringBuilder和StringBuffer的区别
|
14天前
|
Java
Java中 a+=b和a=a+b有什么区别?
Java中 a+=b和a=a+b有什么区别?
|
14天前
|
Java 开发者
Java中三种Set的实现类的用法和区别
Java中三种Set的实现类的用法和区别
|
17天前
|
存储 安全 Java
【JAVA】concurrentHashMap和HashTable有什么区别
【JAVA】concurrentHashMap和HashTable有什么区别
|
17天前
|
安全 Java
【JAVA】线程的run()和start()有什么区别?
【JAVA】线程的run()和start()有什么区别?