封装

set方法

作用:提供一个方法给外界设置成员变量值,可以在方法里面进行过滤

命名规范

1. 方法名必须以set开头

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

3. 返回值一定是void

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

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

6. 只写(writeonly)

get方法

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

命名规范:

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

2. 方法名跟成员变量名一样

3. 不需要接收任何参数

4. 只读(readonly)

封装的好处

1、过滤不合理的值

2、屏蔽内部的赋值过程

3、让外界不必关注内部的细节

类方法

基本概念

直接可以用类名执行的方法(类本身会在内存中占据存储空间,里面有类/对象方法列表)

1. 类方法都是以+号开头

例  + (void)printClassName;

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

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

类方法的好处和使用场合

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

2. 能用类方法,尽量用类方法

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

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

工具类: 基本没有任何成员变量,里面的方法基本都是类方法

self

self:指向了方向调用着,代表当前对象

1. 访问当前对象的成员变量

例  self->成员变量名

2. [self 方法名];可以调用其他对象方法/类方法

继承

继承的好处:

1. 抽取重复代码

2. 建立了类之间的关系

3. 子类可以拥有父类中的所有成员变量和方法

注意

1. 基本上所有类的根类是NSObject

重写:子类重新实现父类中的某个方法,覆盖父类以前的做法

注意

1. 父类必须声明在子类的前面

2. 子类不能拥有和父类相同的成员变量

3. 调用某个方法时,优先去当前类中找,如果找不到,去父类中找

坏处:耦合性太强

1.继承的使用场合

1. 当两个类拥有相同属性和方法的时候,就可以将相同的东西抽取到一个父类中

2. 当A类完全拥有B类中的部分属性和方法时,可以考虑让B类继承A类

组合:是A类的属性,方法可以让B类来用,可以不用继承  //Score *_score;

super

super的作用

1.直接调用父类中的某个方法

2.super处在对象方法中,那么就会调用父类的对象方法

super处在类方法中,那么就会调用父类的类方法

3.使用场合:子类重写父类的方法时想保留父类的一些行为

多态(多种形态)

1.没有继承就没有多态

2.代码的体现:父类类型的指针指向子类对象

3.好处:如果函数\方法参数中使用的是父类类型,可以传入父类、子类对象

局限性:

1. 父类类型的变量不能直接调用子类特有的方法。必须强转为子类类型变量后,才能直接调用子类特有的方法

Objective-C(面向对象的三大特性)的更多相关文章

  1. 谈谈Java面向对象的三大特性

    Java面向对象的三大特性就是指封装.继承.多态了. 一.封装: 概念:封装是指隐藏对象的属性和实现细节,仅对外提供公共访问方式. (举例:笔记本电脑就是一个封装体,Java语言中最小的封装体就是函数 ...

  2. oc语言--面向对象的三大特性

    一.封装 1.什么是封装 在程序上,隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别:将对象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的 ...

  3. OC面向对象的三大特性

    一.面向对象的三大特性:封装(成员变量).继承和多态 1. set方法和get方法 1. set方法和get方法的使用场合 @public的成员可以被随意赋值,应该使用set方法和get方法来管理成员 ...

  4. java基础笔记(6)----面向对象的三大特性

    简介:面向对象的三大特性就是封装,继承,多态,是面向对象的核心. 封装 简介:封装是类的边界,可以对数据起到保护作用 特性:属性私有,提供公开的get/set方法 属性私有:private 数据类型 ...

  5. C#基础知识之面向对象以及面向对象的三大特性

    在C#基础知识之类和结构体中我详细记录了类.类成员.重载.重写.继承等知识总结.这里就记录一下对面向对象和面向对象三大特性的广义理解. 一.理解面向对象 类是面向对象编程的基本单元,面向对象思想其实就 ...

  6. Python面向对象3:面向对象的三大特性

    面向对象的三大特性- 封装- 继承- 多态1 封装 - 封装就是对对象的成员进行访问限制- 封装的三个级别: - 公开,public - 受保护的,protected - 私有的,private - ...

  7. python 之面向对象的三大特性

    面向对象的三大特性 继承 继承和组合 继承进阶 封装 封装(有待完善) 多态 多态

  8. JavaScript面向对象的三大特性

    1.JavaScript面向对象的三大特性 JavaScript的三大特性:封装性.继承性.多态性. 2.JavaScript实现封装特性 在一些静态类型的语言如java中,本身语法就提供了这些功能. ...

  9. Python 面向对象(创建类和对象,面向对象的三大特性是指:封装、继承和多态,多态性)

    概念:                                                                                                 ...

  10. python基础学习Day17 面向对象的三大特性之继承、类与对象名称空间小试

    一.课前回顾 类:具有相同属性和方法的一类事物 实例化:类名() 过程: 开辟了一块内存空间 执行init方法 封装属性 自动的把self返回给实例化对象的地方 对象:实例 一个实实在在存在的实体 组 ...

随机推荐

  1. ALV详解:Function ALV(一)

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  2. C#开发ActiveX控件及指纹采集

    最近做一个指纹采集和比对的功能,因为公司整个项目是WEB类型的,所以指纹采集的模块要嵌套在网页中,那只有用ActiveX了,以下是一些操作及效果,做个笔记! 新建用户控件,编写CS代码,如下: usi ...

  3. Entity Framework 学习初级篇--基本操作:增加、更新、删除、事务(转)

    摘自:http://www.cnblogs.com/xray2005/archive/2009/05/17/1458568.html 本节,直接写通过代码来学习.这些基本操作都比较简单,与这些基本操作 ...

  4. iOS - OC NSRange 范围

    前言 结构体,这个结构体用来表示事物的一个范围,通常是字符串里的字符范围或者集合里的元素范围. typedef struct _NSRange { NSUInteger location; // 表示 ...

  5. 用Java集合中的Collections.sort方法对list排序的两种方法

    用Collections.sort方法对list排序有两种方法第一种是list中的对象实现Comparable接口,如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ...

  6. jdk和eclipse位数不一致出错

    32位的eclipse无法打开:找不64位jdk6的jvm.dll文件(64位的没有这个文件).网上说法可以通过设置eclipse初始化文件xxx.ini改变方式: 直接换成了同位数的了,没去试了.

  7. mysql概要(十)触发器

    1触发器可监视增删改,并触发增删改操作. 针对一些逻辑关联密切的操作,而不必手动多次操作. 2.要素: 3.语法: 补充:mysql可以设置结束符,不必是“:”来结束标志,可使用 3.1简单的例子: ...

  8. 【转】《深入理解计算机系统》C程序中常见的内存操作有关的典型编程错误

    原文地址:http://blog.csdn.net/slvher/article/details/9150597 对C/C++程序员来说,内存管理是个不小的挑战,绝对值得慎之又慎,否则让由上万行代码构 ...

  9. iOS开发之 获取手机的网络的ip地址

    首先在使用的地方导入 #include <ifaddrs.h> #include <arpa/inet.h> 然后直接调用 - (NSString *)getIPAddress ...

  10. Multipath多路径冗余全解

    一.什么是multipath 普通的电脑主机都是一个硬盘挂接到一个总线上,这里是一对一的关系.而到了有光纤组成的SAN环境,由于主机和存储通过了光纤交换机连接,这样的话,就构成了多对多的关系.也就是说 ...