Objective-C(面向对象的三大特性)
封装
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(面向对象的三大特性)的更多相关文章
- 谈谈Java面向对象的三大特性
Java面向对象的三大特性就是指封装.继承.多态了. 一.封装: 概念:封装是指隐藏对象的属性和实现细节,仅对外提供公共访问方式. (举例:笔记本电脑就是一个封装体,Java语言中最小的封装体就是函数 ...
- oc语言--面向对象的三大特性
一.封装 1.什么是封装 在程序上,隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别:将对象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的 ...
- OC面向对象的三大特性
一.面向对象的三大特性:封装(成员变量).继承和多态 1. set方法和get方法 1. set方法和get方法的使用场合 @public的成员可以被随意赋值,应该使用set方法和get方法来管理成员 ...
- java基础笔记(6)----面向对象的三大特性
简介:面向对象的三大特性就是封装,继承,多态,是面向对象的核心. 封装 简介:封装是类的边界,可以对数据起到保护作用 特性:属性私有,提供公开的get/set方法 属性私有:private 数据类型 ...
- C#基础知识之面向对象以及面向对象的三大特性
在C#基础知识之类和结构体中我详细记录了类.类成员.重载.重写.继承等知识总结.这里就记录一下对面向对象和面向对象三大特性的广义理解. 一.理解面向对象 类是面向对象编程的基本单元,面向对象思想其实就 ...
- Python面向对象3:面向对象的三大特性
面向对象的三大特性- 封装- 继承- 多态1 封装 - 封装就是对对象的成员进行访问限制- 封装的三个级别: - 公开,public - 受保护的,protected - 私有的,private - ...
- python 之面向对象的三大特性
面向对象的三大特性 继承 继承和组合 继承进阶 封装 封装(有待完善) 多态 多态
- JavaScript面向对象的三大特性
1.JavaScript面向对象的三大特性 JavaScript的三大特性:封装性.继承性.多态性. 2.JavaScript实现封装特性 在一些静态类型的语言如java中,本身语法就提供了这些功能. ...
- Python 面向对象(创建类和对象,面向对象的三大特性是指:封装、继承和多态,多态性)
概念: ...
- python基础学习Day17 面向对象的三大特性之继承、类与对象名称空间小试
一.课前回顾 类:具有相同属性和方法的一类事物 实例化:类名() 过程: 开辟了一块内存空间 执行init方法 封装属性 自动的把self返回给实例化对象的地方 对象:实例 一个实实在在存在的实体 组 ...
随机推荐
- So easy Webservice 5.WSDL 文件说明
WSDL – WebService Description Language – Web服务描述语言 通过XML形式说明服务在什么地方-地址. 通过XML形式说明服务提供什么样的方法 – 如何调用. ...
- chainOfResponsibility责任链模式
责任链(Chain of Responsibility)模式 : 责任链模式是对象的行为模式.使多个对象都有机会处理请求,从而避免请求的发送者和接受者直接的耦合关系.将这些处理对象连成一条链,沿着这条 ...
- 学习Berkeley DB- 入门
1 导言 首先,我们要了解Berkeley DB的一些基本特性,在IBM的开发网站上有篇文章对其有比较清晰的介绍: 这篇文章讲到了BDB的设计思想和核心数据结构.以及数据访问算法:并有常用函数使用范例 ...
- npm 打包 electron app 报错问题
在进行desktop打包过程中,遇到如下报错: 0 info it worked if it ends with ok 1 verbose cli [ 'C:\\Program Files\\node ...
- iOS - OC NSSize 尺寸
前言 结构体,这个结构体用来表示事物的宽度和高度. typedef CGSize NSSize; struct CGSize { CGFloat width; CGFloat height; }; t ...
- iOS - UIWebView
前言 NS_CLASS_AVAILABLE_IOS(2_0) __TVOS_PROHIBITED @interface UIWebView : UIView <NSCoding, UIScrol ...
- UC打通高德POI数据,用大数据描绘周边热点地图
UC打通高德POI数据,用大数据描绘周边热点地图 2016-10-25 11:13 来源:互联网 我来投稿 我要评论 在北京工作的小李最近很苦恼,房东因小区周边规划了大型商场而坚持涨价. ...
- HIHO 线段树(单点)
#include <stdio.h> #include <string.h> #include <math.h> #include <iostream> ...
- Python学习(4)运算符
目录 Python 算术运算符 Python 比较运算符 Python 赋值运算符 Python 位运算符 Python 逻辑运算符 Python 成员运算符 Python 身份运算符 Python ...
- sqlplus入门基础语句
关于Oracle 首先Oracle一个数据库由若干个表空间组成,每个表空间由若干个数据文件(或设备)组成,每个数据文件由若干个盘区组成,每个盘区由若干个block组成.这是Oracle的物理结构. 逻 ...