1.setter方法

  • 作用:用来设置成员变量,可以在方法里面过滤掉一些不合理的值

  • 命名规范:

    • 必须是对象方法
    • 返回值类型为void
    • 方法名必须以set开头,而且后面跟上成员变量名去掉”_” 首字母必须大写
    • 必须提供一个参数,参数类型必须与所对应的成员变量的类型一致
    • 形参名称和成员变量去掉下划线相同
  • 举例:

  如:如果成员变量为int _age 那么与之对应seter方法为
  -(void) setAge: (int) age;

  • setter方法的好处
  1. 不让数据暴露在外,保证了数据的安全性
  2. 对设置的数据进行过滤

2.getter方法

  • 作用:为调用者返回对象内部的成员变量的值

  • 命名规范:

    • 必须是对象方法
    • 必须有返回值,返回值的类型和成员变量的类型一致
    • 方法名必须是成员变量去掉下划线
    • 一定是没有参数的
  • 举例

如:如果成员变量为int _age 那么与之对应geter方法为
- (int) age;

  • getter方法的优点:

    • 可以让我们在使用getter方法获取数据之前,对数据进行加工;
    • 比如双十一活动,我们希望对全线商品的价格在原来的价格基础上打五折,那么我们只要去改成品类的价格的getter方法就可以了,让他返回的值为价格 * 0.5

3.getter/setter方法注意

  • 在实际的开发中,不一定set和get方法都会提供,如果内部的成员变量,比如学生的学号或计算出来的数据。这样的数据只允许外界读取,但是不允许修改的情况,则通常只提供get方法而不提供set方法 。

  • 成员变量名的命名以下划线开头,get方法名不需要带下划线

  • 成员变量名使用下划线开头有两个好处

    • 与get方法的方法名区分开来
    • 可以和一些其他的局部变量区分开来,下划线开头的变量,通常都是类的成员变量。当我看到以下划线开头变量,那么他一定是成员变量
 

getter/setter方法的更多相关文章

  1. 反射工具类.提供调用getter/setter方法, 访问私有变量, 调用私有方法, 获取泛型类型Class,被AOP过的真实类等工具函数.java

    import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.Validate; import org.ap ...

  2. android studio: 快捷键生成getter/setter方法时自动加m的问题

    平时使用Android Studio 在写实体类的时候,习惯给实体类的成员变量前面加上一个"m" 修饰符表示这是一个成员变量,这也是搞java的一种约定俗成的写法,本来这是没有问题 ...

  3. Eclipse 设置生成带有属性注释的getter/setter方法

    1.  在开发中,一般类注释常注释在字段上面.但eclipse工具自动生成的getter和setter方法是没有注释的,而且还需要自己手动添加,这样比较麻烦.下面介绍如何通过修改eclipse的jar ...

  4. 使用lombok注解@Getter @Setter方法代码编译成功,但是没有生成get,set方法

    现象描述: 在对应类对象中,添加lombok的@Getter或@Setter注解,编译没有问题,但是在使用类对象时,没有出现对应的get或set方法. 配置且编译ok,但是没有对应的get或set方法 ...

  5. java中遍历类中的属性、调用getter&setter方法

    public static void testReflect(Object model) throws NoSuchMethodException, IllegalAccessException, I ...

  6. Java-Ide快速创建getter&setter方法

    1.右键 选择Generate 2.创建 类的equals方法

  7. Android Studio-设置override及getter/setter方法

    默认是Alt+Insert,可以修改成与Eclipse保持一致,Alt+Shift+S

  8. 懒加载(getter\setter理解)

    为什么要用懒加载 1.首先看一下程序启动过程:(如图) 会有一个mian的设置,程序一启动会加载main.storyboard main.storyboard又会加载箭头所指的控制器 控制器一旦加载, ...

  9. ARC以及MRC中setter方法

    ARC以及MRC中setter方法的差异 有时候,你会需要重写setter或者getter方法,你知道么,ARC与MRC的setter方法是有着差异的呢. 先看下MRC下的setter方法: 在看下A ...

随机推荐

  1. 使用JavaScript控制HTML元素的显示和隐藏

    利用来JS控制页面控件显示和隐藏有两种方法,两种方法分别利用HTML的style中的两个属性,两种方法的不同之处在于控件隐藏后是否还在页面上占空位. 方法一: document.getElementB ...

  2. .net core集成使用consul

    快速启动一个consul集群可以参考:使用docker快速部署一个consul集群 .net core集成使用consul是通过consul提供出来api接口来实现的,可以分成两个部分来说明:配置集成 ...

  3. 【Redhat系列linux防火墙工具】firewalld与iptables防火墙工具的激烈碰撞

    前言 iptables与firewalld防火墙管理工具在linux发行版Redhat7系列使用较为广泛. UFW则是在linux发行版Ubuntu下进行管理防火墙的一款管理工具. 在选用防火墙工具的 ...

  4. [学习笔记] IT项目管理 - 挣值管理(EVM)

    挣值管理(EVM) 挣值管理(Earned Value Management, EVM)是成本管理里面较为重点的知识点,但是也可以用来综合考察项目范围.进度和成本绩效,经常需要做相关计算. 基本概念P ...

  5. mysql语句2-单表查询

    mysql 查询以及多表查询 以下所有表格样例都采用下边这个表格 mysql> select * from benet; +------+------+----------+ | id   | ...

  6. ubuntu 升级node和npm 版本

    使用vue-cli 3 构建项目时会一直卡在拉取依赖不动,原因是node和npm版本过低,升级node版本即可 $ sudo npm cache clean -f $ sudo npm install ...

  7. vant引入及配置

    1. vant 官网 https://youzan.github.io/vant/#/zh-CN/quickstart 2. 通 npm 安装 npm i vant -S 3.安装 babel-plu ...

  8. TensorRT 开始

    TensorRT 是 NVIDIA 自家的高性能推理库,其 Getting Started 列出了各资料入口,如下: 本文基于当前的 TensorRT 8.2 版本,将一步步介绍从安装,直到加速推理自 ...

  9. 【Java常用类】BigInteger

    BigInteger Integer类作为int的包装类,能存储的最大整型值为2^31-1,Long类也是有限的, 最大为2 ^63-1.如果要表示再大的整数,不管是基本数据类型还是他们的包装类 都无 ...

  10. RHCSA 第三天

    1.将echo "This is my first time to use pipe"内容输出到屏幕上,且保存到pipe_data.txt中 2. 重定向: a.新建一个文件red ...