本次主要学习面向对象的三大特性:封装、继承和多态中的封装

封装

 1、 好处

  降低耦合率

  可重复调用类中的属性

  提高安全性,外部不能随便修改变量的值,保证了数据的安全性

 2、 set方法

  1.作用:提供一个方法给外界设置成员变量,可以在方法里面对参数进行相应的过滤

  2.命名规范

   1> 方法名必须以set开头

   2> set后面跟上成员变量的名称,成员变量的首字母必须大写

   3> 返回值一定是void

   4> 一定要接收一个参数,而且参数类型和成员变量类型一致

   5> 形参的名称不能跟成员变量名一样

 3、 get方法

  1.作用:返回对象内部的成员变量

  2.命名规范

   1> 肯定有返回值,返回类型肯定与成员变量类型一致

   2> 方法名为成员变量名去掉下划线 _ ,成员变量在定义时,一般以下划线 _ 开头

   3> 不需要接收任何参数

 4、 成员变量

  命名规范:一定要用下划线 _ 开头

  作用:
    1.让成员变量和get方法区分开
    2.可以跟局部变量区分,一看到下划线开头的变量,一般都是成员变量

 5、 对象方法和类方法

  1.对象方法

   1> 减号 - 开头

   2> 只能由对象调用

   3> 对象方法中能访问成员变量(实例变量)

  2.类方法   

   1> 加号 + 开头

   2> 只能由类(名)来调用

   3> 类方法中不能访问成员变量(实例变量)

  3.类方法的好处

   1> 不依赖于对象,执行效率高

   2> 能用类方法尽量用类方法

   3> 场合:当方法内部不需要使用到成员变量时,就可以改为类方法

  允许类方法和对象方法同名

示例代码

 #import <Foundation/Foundation.h>

 // 定义一个性别枚举
typedef enum {
SexMan,
SexWoman
} Sex; @interface Student : NSObject
{
// 成员变量
int _no;
Sex _sex;
}
// sex的set和get方法的声明
- (void)setSex:(Sex)sex;
- (Sex)sex;
@end @implementation Student
// sex的set和get方法的实现
- (void)setSex:(Sex)sex {
_sex = sex;
}
- (Sex)sex {
return _sex;
}
@end int main() {
// 创建一个学生对象
Student *stu = [Student new];
// 调用stu对象性别的set方法
[stu setSex:SexMan];
// 调用stu对象性别的get方法
NSLog(@"%d", [stu sex]); return ;
}

iOS之05-三大特性之封装的更多相关文章

  1. java提高篇(一)-----理解java的三大特性之封装

    从大二接触java开始,到现在也差不多三个年头了.从最基础的HTML.CSS到最后的SSH自己都是一步一个脚印走出来的,其中开心过.失落过.寂寞过.虽然是半道出家但是经过自己的努力也算是完成了“学业” ...

  2. PHP其它常用函数;<<<面向对象(OPP)的三大特性:封装、继承、加态:>>> <----面试题 ;构造方法、析构方法,魔术方法、set、get方法;静态;抽象类;接口

    PHP其它常用函数:     赋值:$r->name = "元素";      取值: echo $r->name;  count()   计算数组中的元素数目或对象中 ...

  3. (转载)OC学习篇之---类的三大特性:封装,继承,多态

    之前的一片文章介绍了OC中类的初始化方法和点语法的使用,今天来继续学习OC中的类的三大特性,我们在学习Java的时候都知道,类有三大特性:继承,封装,多态,这个也是介绍类的时候,必须提到的话题,那么今 ...

  4. JAVA三大特性之一——封装

    自学java已经有一段时间了,但是感觉对于很多知识点还是有必要总结和整理一下,下面我就来说一下我对JAVA三大特性之一——封装特性的认识和理解. 封装,从字面意思可以看出来,就是包装,也就是把我们写好 ...

  5. (转)java提高篇(一)-----理解java的三大特性之封装

    从大二接触java开始,到现在也差不多三个年头了.从最基础的HTML.CSS到最后的SSH自己都是一步一个脚印走出来的,其中开心过.失落过.寂寞过.虽然是半道出家但是经过自己的努力也算是完成了“学业” ...

  6. java基础(一)-----java的三大特性之封装

    面向对象编程有三大特性:封装.继承.多态.本文将介绍java的三大特性之封装 封装 封装从字面上来理解就是包装的意思,专业点就是信息隐藏,是指利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成 ...

  7. Java三大特性:封装,继承,多态

    java提高篇(一)-----理解java的三大特性之封装 概念: 封装从字面上来理解就是包装的意思,专业点就是信息隐藏,是指利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独 ...

  8. C++三大特性之封装

    原文地址:https://qunxinghu.github.io/2016/09/12/C++%20%E4%B8%89%E5%A4%A7%E7%89%B9%E6%80%A7%E4%B9%8B%E5%B ...

  9. Javascript面向对象三大特性(封装性、继承性、多态性)详解及创建对象的各种方法

    Javascript基于对象的三大特征和C++,Java面向对象的三大特征一样,都是封装(encapsulation).继承(inheritance )和多态(polymorphism ).只不过实现 ...

随机推荐

  1. NYOJ之三个数从小到大排序

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAsoAAAGvCAIAAADNJWRjAAAgAElEQVR4nO3dPXLqSrs24DMJcgbi1A

  2. Maven构建Hadoop Maven构建Hadoop工程

    一.安装maven linux eclipse3.6.1 maven安装 二:官网依赖库 我们可以直接去官网查找我们需要的依赖包的配置pom,然后加到项目中. 官网地址:http://mvnrepos ...

  3. ****php:require_once(dirname(__FILE__)."/./config_uc.php");

    Q:麻烦清楚地讲解一下这句的意思,具体路径是怎样的,这个文解在 根目录,如果我想放在根目录下的tieba文件夹里,应该怎么修改/./ 这个是表示什么? A: require_once(dirname( ...

  4. 游戏主循环(Game Loop)

    游戏主循环是游戏的心跳,一般使用while循环进行主动刷新. 一次循环由获取用户输入.更新游戏状态.处理AI.播放音乐和绘制画面组成. 这些行为可以分成两类: update_game(); // 更新 ...

  5. [LeetCode] Pow(x, n)

    Implement pow(x, n). 有史以来做过最简单的一题,大概用5分钟ac,我采用fast exponential,这个在sicp的第一章就有描述.思想是:如果n是偶数的话,那么m^n = ...

  6. 玩转SSRS第九篇---匿名访问的一个间接方法

    SSRS是一个功能丰富的报表平台,我们可以在这个平台上实现各种不同需求的报表应用,所以这个平台也吸引了很多.net框架之外的技术,希望能在应用中引入SSRS的报表,比如JSP或者PHP页面,这个时候系 ...

  7. Sql Server 索引之唯一索引和筛选索引

    唯一索引(UNIQUE  INDEX) 当主键创建时如果不设置为聚集索引,那么就一定是唯一的非聚集索引.实际上,唯一索引,故名思议就是它要求该列上的值是唯一的.唯一索引能够保证索引键中不包含重复的值, ...

  8. ASP.NET 5探险(3):使用UMEditor并实现图片上传

    (此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 题记:今天将继续上一篇来讲解百度富文本Web编辑器UEditor或UMEditor的使用. ...

  9. Sizeof与Strlen的区别与联系

    转自:http://www.cnblogs.com/carekee/articles/1630789.html 一.sizeof    sizeof(...)是运算符,在头文件中typedef为uns ...

  10. Debian下安装vim

    问题描述:安装完系统以后,刚要打算开始写程序,发现,vim还没有装,用su -切换到root后 直接运行apt-get install vim,提示插入disc源,然后回车,陷入无法解决的状态. 上网 ...