成员属性私有化的优点
目录
优点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、在赋值和取值函数中,加入对属性的赋值/取值权限
成员属性私有化的优点相关推荐
- C++_类和对象_封装_成员属性私有化---C++语言工作笔记038
1.然后我们再来看类和对象,成员属性设置为私有化 将所有的成员属性设置为私有以后,可以对外提供get,set方法,这样可以实现自己控制属性的 读写权限. 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. 类和对象 ...
- C++基础:C++类成员属性的一种简洁实现
一般来说对于标准C++而言是不存在成员属性这个概念的,以前大家都是用GetXXX/SetXXX来访问或取得数据,好象也没有感觉到任何不便.但是当我们用过C#之类的语言之后,我们总觉得C++这个方式太老 ...
- Java 多态中成员变量与成员属性的特点【复习】
package firstchapter;/*** 多态中成员变量与成员属性的特点*/ public class polymorphic {public static void main(String ...
- 设计一个笔记本电脑类,属性随意,并且进行属性私有化,对外提供公开的set和get方法。 设计一个可插拔的接口:InsertDrawable,该接口有什么方法自行定义。
代码 /* 开放型题目:设计一个笔记本电脑类,属性随意,并且进行属性私有化,对外提供公开的set和get方法.设计一个可插拔的接口:InsertDrawable,该接口有什么方法自行定义.设计一个鼠标 ...
- 为什么成员属性不会被重写
Java中的成员属性能被重写吗? 让我们先看以下代码示例,创建了两个Sub对象,并将其引用分别赋给SUb类和其父类Super: package simplejava;class Super {Stri ...
- 为什么要写this在访问成员变量的时候_java面向对象(局部变量和成员属性)
局部变量: 我们定义在一个方法内部的变量称为局部变量.局部变量需要给初始值,才能使用. 成员属性: 实例属性: 直接定义在类中的属性,我们称为成员变量.成员变量jdk会给默认值.只属于某一实例. 类属 ...
- php成员属性的声明方式,PHP中如何定义类及其成员属性与操作_PHP教程
类的概念:类是具有相同属性和操作的一组对象的集合.它为属于该类的所有对象提供了统一的抽象描述,其内部包括属性和操作两个主要部分.在面向对象的编程语言中,类是一个独立的程序单位,它应该有一个类名并包括属 ...
- C++类成员属性的一种简洁实现
一般来说对于标准C++而言是不存在成员属性这个概念的,以前大家都是用GetXXX/SetXXX来访问或取得数据,好象也没有感觉到任何不便.但是当我们用过C#之类的语言之后,我们总觉得C++这个方式太老 ...
最新文章
- linux入门教程(二)
- boost::core::has_single_bit的测试
- springboot 添加允许跨域_springboot设置cors跨域请求的两种方式
- ubuntu 10.04源 更新源列表 选择
- JAVA入门级教学之(JAVA程序的加载和运行)
- 不同类别的图像数量可视化
- 注解形式控制器 数据验证,类型转换
- linux 64位module内联汇编,@yuanbor: Linux内联汇编总结
- retext代码高亮_实例简介Markdown格式
- (三)mybatisPlus自定义Sql语句
- 使用layui中的laypage遇到的各种问题总结
- 计算机组成原理学习笔记-加法器
- 访问V$LOCK视图oracle11g出现性能问题
- PE文件加节感染之Win32.Loader.bx.V病毒分析
- android仿网易云音乐引导页、仿书旗小说Flutter版、ViewPager切换、风扇叶片效果等源码...
- Parameter index out of range (2 > number of parameters, which is 1).原因及处理
- 海思开发板上添加ftp功能
- C语言初阶数据结构(四)栈(详细图解,简单上手,通俗易懂)
- 数据结构第一次上机实验报告
- android 微信摇一摇功能实现,android 类似微信的摇一摇功能实现思路及代码