java里getter和setter的作用和区别是什么?
java是典型的面向对象的编程语言,面向对象三个特性,继承性,多态性,封装性,主要和封装性考虑,类里面的变量不想设置成公共的类型,但是还要给外部使用在这种实用场景下,从编程技巧上加上方法来获取或者设置参数值,于是getter和setter就使用上了。
增加两个方法保证了类结构的完整性以及安全性还是非常合算的做法,其实从框架上考虑增加这两个方法还能在实际编程过程中增加额外的功能作用,现在就根据实际编程中的经验做一些总结归纳:
1.可以通过setter方法检查下数据的准确性,比如是否越界之类的异常等等
2.可以在setter方法里面加上一些功能函数,主要在限定一些条件如果数值达到一定范围之后就开始做某些动作,选择的时机点正好在这个方法里面。
3.加入涉及到多线程的操作,在setter方法里面正好做加锁的操作,正好是一个恰当的时机
4.由于是关键数值的变化,在这两个方法中加上打印非常适合追踪数据的变化,方便程序的判断。
以上四点是在项目推进过程中总结的,希望对于初学java的有所帮助。
原文发布时间为:2018-09-18
本文作者:东辉在线
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
有人说学了C语言,两天就能把Java学会,再过两个星期就可以找工作了,是真的吗?
作为一个做过十几年代码的老司机,学习编程如果真的这么简单就不会导致现在各大公司还在喊着招不到人的情况了,虽然编程领域里面有触类旁通的说法,但这个说法只是针对于对于一种编程已经掌握到一定程度了,不是简单的学过或者做过就可以轻松的转向别的编程语言了,换句话来讲如果一种编程语言学的马马虎虎,也不要指望第二种编程语言能好到什么程度,编程语言不在于多,而在于精,只要在一个方向做到极致,找到编程的感觉,再切入新的编程语言的确会快很多。 正常来讲如果已经掌握一种或者多种编程语言再去学习新的编程语言,就那笔者的经验来讲差不多十天左右就能开始跟着做项目,为什么会有这种判断不在于编程语言本身有多简单,主要来讲编程语言只是一种工具而已,真正关切到编程核心的东西是编程思想,不同的编程语言编程思想是想通的,所以切换到新的编程语言只是切换的编程语言的语法,编程思想还是哪些,所以从心理上就存在优越感,有了底气学习起来自然就快了许多,其实很多编程语言虽然具体不完全的一致,但指导思想基本上一致,所以学习了基本的语法之后直接开始上手做东西就可以了,当然在做的过程中如果遇到不懂的直接查资料,邮局不太好听话,叫现编现买,其实...
- 下一篇
你真的了解JAVA的形参和实参吗?
前几天在头条上看到一道经典面试题,引发了一些思考。也是写这篇文章的导火索。 背景 请看题: public class Main { public static void main(String[] args) { Integer a = 1; Integer b = 2; System.out.println("a=" + a + ",b=" + b); swap(a, b); System.out.println("a=" + a + ",b=" + b); } private static void swap(Integer numa, Integer numb) { //请实现 } } 看到这个题后 瞬间觉得有坑。也觉得为什么要书写一个 swap方法呢?如下实现不是更简单: public static void main(String[] args) { Integer a = 1; Integer b = 2; System.out.println("a=" + a + ",b=" + b); Integer tmp = a; a = b; b = tmp; System.ou...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS6,CentOS7官方镜像安装Oracle11G
- 设置Eclipse缩进为4个空格,增强代码规范
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- SpringBoot2全家桶,快速入门学习开发网站教程
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- MySQL8.0.19开启GTID主从同步CentOS8