变量私有化的好处

1. 在setter中可以加入合法性检查,比如设置颜色的函数中,对于RGB颜色要判断其值在0~255之间。

2. 更新与被设置变量相关的其它变量的值,比如在一个潜水艇模拟系统中,改变了其水下深度时,要相应的更新所受压强。

3. 在debug时,可以在其中,尤其是在setter中加入追踪log。

4. 在多线程环境中,如果要保护对象的并发访问,则必须在getter/setter中加入同步锁。

所以,可以看出使用getter/setter访问私有变量是很有道理的。但笔者认为,我们不应该被这个思想完全禁锢了。

转载于:https://www.cnblogs.com/kakaisgood/p/6554449.html

为什么要使用getter/setter相关推荐

  1. lombok(@Getter@Setter)

    Lombok是一个可以通过简单的注解形式来帮助我们简化消除一些必须有但显得很臃肿的Java代码的工具,通过使用对应的注解,可以在编译源码的时候生成对应的方法. 官方地址:https://project ...

  2. Java程序猿JavaScript学习笔记(4——关闭/getter/setter)

    计划和完成这个例子中,音符的顺序如下: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScr ...

  3. ES6-8 - 函数名/对象拓展、描述符、getter/setter

    函数名 有两种特殊情况:bind方法创造的函数,name属性返回bound加上原函数的名字:Function构造函数创造的函数,name属性返回anonymous. bind函数名 // 以bound ...

  4. 还在手写 Getter/Setter 方法吗?Lombok 让你的代码更简洁!

    以下是文章大纲: Lombok 是什么? 官网:https://projectlombok.org/ Lombok 是一个 Java 库,使用 Lombok 可以通过简单的注解帮助我们消除 Java ...

  5. TypeScript入门教程 之 类/抽象类/构造器/Getter/Setter

    TypeScript入门教程 之 类/抽象类/构造器/Getter/Setter 将JavaScript中的类作为头等项很重要的原因是: 类提供了有用的结构抽象 为开发人员提供一种一致的方式来使用类, ...

  6. php5.5 getter setter,实现了一个PHP5的getter/setter基类的代码

    实现了一个PHP5的getter/setter基类的代码 PHP3.PHP4都拥有类,但它们的类定义的实在很不像样,效率还挺难为情的,但资料上说PHP5重新构造了面向对象的支持,尽管并不是完全面向对象 ...

  7. SpringCloud工作笔记074---Idea2018 1.6发现不支持@Slf4j,@Getter ,@Setter注解

    技术交流QQ群[JAVA,.NET,BigData,AI]:170933152 最近发现这个问题了,好麻烦.... 1 Lombok背景介绍 官方介绍如下: Project Lombok makes ...

  8. 利用Lambda实现通过getter/setter方法引用拿到属性名

    很多开发场景需要用到Java Bean的属性名,直接写死属性名字符串的形式容易产生bug(属性名一旦变化,IDE不会告诉你你的字符串需要同步修改).JDK8的Lambda可以通过方法引用简化代码,同样 ...

  9. java is setter_为什么java需要getter/setter来获取私有属性?

    CreateTime:2019-10-5 15:49:43 UpdateTime: 2019-10-5 16:23:21 Copyright: 唐涛 2019 © HOME Getter和setter ...

最新文章

  1. 关于javascript代码优化的8点建议
  2. 三大框架整合教程(Spring+SpringMVC+MyBatis)
  3. Redis 有序集合(zset)取交集(zinterstore)操作耗时测试
  4. HashMap中提到的散列是什么?
  5. C语言使用找出二维数组所有元素中的最大值,下标
  6. JSP第十四次课:JSP项目开发高级操作2---在线编辑器应用及前台首页显示商品
  7. scrapy学习笔记(二)进阶使用
  8. 用jdbc连接hive server需要用到的 几个jar包
  9. Documentum之基础(2)
  10. 国外卫星地图mapbox的基本操作
  11. Matlab实现GM(1,1)模型(源代码)
  12. 无人车系统(三):用python写一个简单的无人车仿真环境
  13. iOS版本 不限速迅雷 企业证书打包的 https://www.pgyer.com/yZAv 密码 9800
  14. Mini-C编译器设计与实现 文档+任务书+评价表+PPT+项目源码
  15. c语言整形数组存放字符串,用一维字符数组存放字符串
  16. Andriod 布局
  17. java 水波纹_java实现水波纹扩散效果
  18. react-native 关闭黄色警告
  19. Tomcat和Was服务器中文乱码问题总结
  20. RoboCupRescue心得

热门文章

  1. 1用switch语句从控制台输入100以内的分数判断优秀,良好,及格不及格属于哪一个区间
  2. textarea不可拖动
  3. jvm最大最小内存参数设置
  4. SpringBoot整合RabbitMQ-创建队列并绑定交换机
  5. QueryWrapper 一些常用操作 or like in 大于 小于 操作
  6. 各个系统下关闭占用端口号的进程
  7. Kotlin 1.2 有哪些新特性
  8. 百度云BaaS体系揭秘,突破共识机制、单机计算和串行处理三大瓶颈
  9. idea生成类中序列化id
  10. 在svn中发布多个工程