getter/setter方法
1.setter方法
作用:用来设置成员变量,可以在方法里面过滤掉一些不合理的值
命名规范:
- 必须是对象方法
- 返回值类型为void
- 方法名必须以set开头,而且后面跟上成员变量名去掉”_” 首字母必须大写
- 必须提供一个参数,参数类型必须与所对应的成员变量的类型一致
- 形参名称和成员变量去掉下划线相同
举例:
如:如果成员变量为int _age 那么与之对应seter方法为
-(void) setAge: (int) age;
- setter方法的好处
- 不让数据暴露在外,保证了数据的安全性
- 对设置的数据进行过滤
2.getter方法
作用:为调用者返回对象内部的成员变量的值
命名规范:
- 必须是对象方法
- 必须有返回值,返回值的类型和成员变量的类型一致
- 方法名必须是成员变量去掉下划线
- 一定是没有参数的
举例
如:如果成员变量为int _age 那么与之对应geter方法为
- (int) age;
- getter方法的优点:
- 可以让我们在使用getter方法获取数据之前,对数据进行加工;
- 比如双十一活动,我们希望对全线商品的价格在原来的价格基础上打五折,那么我们只要去改成品类的价格的getter方法就可以了,让他返回的值为价格 * 0.5
3.getter/setter方法注意
在实际的开发中,不一定set和get方法都会提供,如果内部的成员变量,比如学生的学号或计算出来的数据。这样的数据只允许外界读取,但是不允许修改的情况,则通常只提供get方法而不提供set方法 。
成员变量名的命名以下划线开头,get方法名不需要带下划线
成员变量名使用下划线开头有两个好处
- 与get方法的方法名区分开来
- 可以和一些其他的局部变量区分开来,下划线开头的变量,通常都是类的成员变量。当我看到以下划线开头变量,那么他一定是成员变量
getter/setter方法的更多相关文章
- 反射工具类.提供调用getter/setter方法, 访问私有变量, 调用私有方法, 获取泛型类型Class,被AOP过的真实类等工具函数.java
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.Validate; import org.ap ...
- android studio: 快捷键生成getter/setter方法时自动加m的问题
平时使用Android Studio 在写实体类的时候,习惯给实体类的成员变量前面加上一个"m" 修饰符表示这是一个成员变量,这也是搞java的一种约定俗成的写法,本来这是没有问题 ...
- Eclipse 设置生成带有属性注释的getter/setter方法
1. 在开发中,一般类注释常注释在字段上面.但eclipse工具自动生成的getter和setter方法是没有注释的,而且还需要自己手动添加,这样比较麻烦.下面介绍如何通过修改eclipse的jar ...
- 使用lombok注解@Getter @Setter方法代码编译成功,但是没有生成get,set方法
现象描述: 在对应类对象中,添加lombok的@Getter或@Setter注解,编译没有问题,但是在使用类对象时,没有出现对应的get或set方法. 配置且编译ok,但是没有对应的get或set方法 ...
- java中遍历类中的属性、调用getter&setter方法
public static void testReflect(Object model) throws NoSuchMethodException, IllegalAccessException, I ...
- Java-Ide快速创建getter&setter方法
1.右键 选择Generate 2.创建 类的equals方法
- Android Studio-设置override及getter/setter方法
默认是Alt+Insert,可以修改成与Eclipse保持一致,Alt+Shift+S
- 懒加载(getter\setter理解)
为什么要用懒加载 1.首先看一下程序启动过程:(如图) 会有一个mian的设置,程序一启动会加载main.storyboard main.storyboard又会加载箭头所指的控制器 控制器一旦加载, ...
- ARC以及MRC中setter方法
ARC以及MRC中setter方法的差异 有时候,你会需要重写setter或者getter方法,你知道么,ARC与MRC的setter方法是有着差异的呢. 先看下MRC下的setter方法: 在看下A ...
随机推荐
- 使用JavaScript控制HTML元素的显示和隐藏
利用来JS控制页面控件显示和隐藏有两种方法,两种方法分别利用HTML的style中的两个属性,两种方法的不同之处在于控件隐藏后是否还在页面上占空位. 方法一: document.getElementB ...
- .net core集成使用consul
快速启动一个consul集群可以参考:使用docker快速部署一个consul集群 .net core集成使用consul是通过consul提供出来api接口来实现的,可以分成两个部分来说明:配置集成 ...
- 【Redhat系列linux防火墙工具】firewalld与iptables防火墙工具的激烈碰撞
前言 iptables与firewalld防火墙管理工具在linux发行版Redhat7系列使用较为广泛. UFW则是在linux发行版Ubuntu下进行管理防火墙的一款管理工具. 在选用防火墙工具的 ...
- [学习笔记] IT项目管理 - 挣值管理(EVM)
挣值管理(EVM) 挣值管理(Earned Value Management, EVM)是成本管理里面较为重点的知识点,但是也可以用来综合考察项目范围.进度和成本绩效,经常需要做相关计算. 基本概念P ...
- mysql语句2-单表查询
mysql 查询以及多表查询 以下所有表格样例都采用下边这个表格 mysql> select * from benet; +------+------+----------+ | id | ...
- ubuntu 升级node和npm 版本
使用vue-cli 3 构建项目时会一直卡在拉取依赖不动,原因是node和npm版本过低,升级node版本即可 $ sudo npm cache clean -f $ sudo npm install ...
- vant引入及配置
1. vant 官网 https://youzan.github.io/vant/#/zh-CN/quickstart 2. 通 npm 安装 npm i vant -S 3.安装 babel-plu ...
- TensorRT 开始
TensorRT 是 NVIDIA 自家的高性能推理库,其 Getting Started 列出了各资料入口,如下: 本文基于当前的 TensorRT 8.2 版本,将一步步介绍从安装,直到加速推理自 ...
- 【Java常用类】BigInteger
BigInteger Integer类作为int的包装类,能存储的最大整型值为2^31-1,Long类也是有限的, 最大为2 ^63-1.如果要表示再大的整数,不管是基本数据类型还是他们的包装类 都无 ...
- RHCSA 第三天
1.将echo "This is my first time to use pipe"内容输出到屏幕上,且保存到pipe_data.txt中 2. 重定向: a.新建一个文件red ...