目录

优点1:将所有成员属性设置为私有,可以自己控制读写权限;

优点2:对于写权限,我们可以检测数据的有效性。即通过if判断输入是否是正确的。


优点1:

将所有成员属性设置为私有,可以自己控制读写权限;

例1:

第7行为设置姓名,第11行为获取姓名,第15行为设置年龄,第19行为获取年龄,第23行为设置爱人,第27行为获取爱人。
名字、年龄、爱人都是私有权限的属性,无法通过40、41、42行的方式类外访问赋值,只能通过第7、15、23行来类内访问赋值。

所以想设置哪种属性可写,就写一个set函数;可读,就写一个get函数;可读可写就set函数和get函数都写。

这种方法最大的好处在于,可以自己设置属性的可读可写性


优点2:

对于写权限,我们可以检测数据的有效性。即通过if判断输入是否是正确的。

例2:

在例1中的15行设置年龄中把函数改成例2的形式,可以判断设置的年龄是否是正常的。对于其他写权限的函数也可这样做


总结:

1、修改属性的权限来限制属性的访问;

2、为属性创建赋值函数和取值函数,用于对这些属性的访问;

3、在赋值和取值函数中,加入对属性的赋值/取值权限

成员属性私有化的优点相关推荐

  1. C++_类和对象_封装_成员属性私有化---C++语言工作笔记038

    1.然后我们再来看类和对象,成员属性设置为私有化 将所有的成员属性设置为私有以后,可以对外提供get,set方法,这样可以实现自己控制属性的 读写权限. 2.对于写权限我们可以检测数据的有效性. 先写 ...

  2. c/c++教程 - 2.4.1 类和对象,封装,class和struct的区别,成员属性设为私有,类拆分成.h.c文件编写方法

    目录 4. 类和对象 4.1 封装 4.1.1 封装的意义 4.1.2 class和struct的区别 4.1.3 成员属性设置为私有 4.1.4 类拆分成.h.c编写方法 相关教程 4. 类和对象 ...

  3. C++基础:C++类成员属性的一种简洁实现

    一般来说对于标准C++而言是不存在成员属性这个概念的,以前大家都是用GetXXX/SetXXX来访问或取得数据,好象也没有感觉到任何不便.但是当我们用过C#之类的语言之后,我们总觉得C++这个方式太老 ...

  4. Java 多态中成员变量与成员属性的特点【复习】

    package firstchapter;/*** 多态中成员变量与成员属性的特点*/ public class polymorphic {public static void main(String ...

  5. 设计一个笔记本电脑类,属性随意,并且进行属性私有化,对外提供公开的set和get方法。 设计一个可插拔的接口:InsertDrawable,该接口有什么方法自行定义。

    代码 /* 开放型题目:设计一个笔记本电脑类,属性随意,并且进行属性私有化,对外提供公开的set和get方法.设计一个可插拔的接口:InsertDrawable,该接口有什么方法自行定义.设计一个鼠标 ...

  6. 为什么成员属性不会被重写

    Java中的成员属性能被重写吗? 让我们先看以下代码示例,创建了两个Sub对象,并将其引用分别赋给SUb类和其父类Super: package simplejava;class Super {Stri ...

  7. 为什么要写this在访问成员变量的时候_java面向对象(局部变量和成员属性)

    局部变量: 我们定义在一个方法内部的变量称为局部变量.局部变量需要给初始值,才能使用. 成员属性: 实例属性: 直接定义在类中的属性,我们称为成员变量.成员变量jdk会给默认值.只属于某一实例. 类属 ...

  8. php成员属性的声明方式,PHP中如何定义类及其成员属性与操作_PHP教程

    类的概念:类是具有相同属性和操作的一组对象的集合.它为属于该类的所有对象提供了统一的抽象描述,其内部包括属性和操作两个主要部分.在面向对象的编程语言中,类是一个独立的程序单位,它应该有一个类名并包括属 ...

  9. C++类成员属性的一种简洁实现

    一般来说对于标准C++而言是不存在成员属性这个概念的,以前大家都是用GetXXX/SetXXX来访问或取得数据,好象也没有感觉到任何不便.但是当我们用过C#之类的语言之后,我们总觉得C++这个方式太老 ...

最新文章

  1. linux入门教程(二)
  2. boost::core::has_single_bit的测试
  3. springboot 添加允许跨域_springboot设置cors跨域请求的两种方式
  4. ubuntu 10.04源 更新源列表 选择
  5. JAVA入门级教学之(JAVA程序的加载和运行)
  6. 不同类别的图像数量可视化
  7. 注解形式控制器 数据验证,类型转换
  8. linux 64位module内联汇编,@yuanbor: Linux内联汇编总结
  9. retext代码高亮_实例简介Markdown格式
  10. (三)mybatisPlus自定义Sql语句
  11. 使用layui中的laypage遇到的各种问题总结
  12. 计算机组成原理学习笔记-加法器
  13. 访问V$LOCK视图oracle11g出现性能问题
  14. PE文件加节感染之Win32.Loader.bx.V病毒分析
  15. android仿网易云音乐引导页、仿书旗小说Flutter版、ViewPager切换、风扇叶片效果等源码...
  16. Parameter index out of range (2 > number of parameters, which is 1).原因及处理
  17. 海思开发板上添加ftp功能
  18. C语言初阶数据结构(四)栈(详细图解,简单上手,通俗易懂)
  19. 数据结构第一次上机实验报告
  20. android 微信摇一摇功能实现,android 类似微信的摇一摇功能实现思路及代码

热门文章

  1. html小说阅读页面,html页面布局
  2. 贴片发光二极管的正负
  3. 决策树回归:不掉包源码实现
  4. hp m436n 选的A4 纵向打出来是却是横向?
  5. 移动自带的光猫带无线路由功能,用不用关掉,用光猫的路由拨号还是自备的路由器拨号?
  6. 2023前端面试总结含参考答案
  7. 自监督学习和计算机视觉
  8. 要辞职了,收集一些如何写辞职信的模板
  9. mysql binlog协议_mysql binlog协议分析--具体event
  10. HTML5+CSS3基础学习笔记:2