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

封装

 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. nyoj998(euler)

    题意:题意:给出n和m,求满足条件gcd(x, n)>=m的x的gcd(x, n)的和,其中1<=x<=n,1<= n, m <= 1e9:思路:此题和nyoj1007差 ...

  2. Tomcat在Linux上的安装与配置

    以下使用的Linux版本为: Redhat Enterprise Linux 6.5 x86_64,Tomcat版本为tomcat-7.0.54. 1.下载JDK与Tomcat.    jdk下载地址 ...

  3. Linux获取当前用户信息函数

    转自:http://net.pku.edu.cn/~yhf/linux_c/function/07.html endgrent(关闭组文件) 相关函数 getgrent,setgrent 表头文件 # ...

  4. Webstorm & PhpStorm的序列号和证书

    WebStorm注册码 User Name: EMBRACE License Key: ===== LICENSE BEGIN ===== 24718-12042010 00001h6wzKLpfo3 ...

  5. Yii 同域名的单点登录 SSO实现

    SSO (Single Sign-on) 顾名思义就是几个子项目共用一个登录点. 原理简单来说就是服务端session 共享, 客户端跨域cookies. 实现非常简单,protected/confi ...

  6. Validform 学习笔记---代码练习

    上一节主要梳理了validform的基础知识,针对这些基础知识,编写代码的时候,也整理的部分知识,先记录以便后期温习. 验证部分的css @charset "utf-8"; /* ...

  7. input上下居中问题

    IE:不管该行有没有文字,光标高度与font-size一致.FF:该行有文字时,光标高度与font-size一致.该行无文字时,光标高度与input的height一致.Chrome:该行无文字时,光标 ...

  8. POJ 1008 Maya Calendar

    链接:http://poj.org/problem?id=1008 Maya Calendar Time Limit: 1000MS   Memory Limit: 10000K Total Subm ...

  9. BurpSuite导出log配合SQLMAP批量扫描注入点

    sqlmap可以批量扫描包含有request的日志文件,而request日志文件可以通过burpsuite来获取, 因此通过sqlmap结合burpsuite工具,可以更加高效的对应用程序是否存在SQ ...

  10. 判断网络是否连接 和 判断GPS是否连接

    //判断网络是否连接 public static Boolean isNetworkEnabled(Context context){ int status=-1  //设置默认连接的状态为-1 Co ...