关闭

OC语言大总结(上)

标签: OC大总结oc语言iOS学习iOSobjective-c
1141人阅读 评论(0) 收藏 举报
分类:
根据OC学习的知识点,总结了一下,希望能帮到大家!
作者:韩俊强  未经允许,请勿转载!
第一节类于对象  

知识点

注意事项

面向对象编程

OOP(Object Oriented Programming)

面向对象语言

C++,JAVA,C#,OC,Swift

概念

,对象,封装,继承,多态...

面向过程编程

分析解决问题的步骤,实现函数,依次调用

面向对象编程

分解问题组成的对象,协调对象间的联系和通信,解决问题.


面向过程以过程为编程中心,面向对象以对象为编程中心.

面向对象编程设计

1.分析涉及到的对象.2.根据功能定义类.3.使用对象的功能完成程序

类和对象

1.类和对象是面向对象的核心.2.类是对象的类型.3.对象是类的实例.4.万事万物皆对象.

OC中类的定义

1.面向对象编程中使用对象完成程序.2.开发中:先定义类,再创建对象,然后适用对象.3.定义类包含两部分:接口部分和实现部分.分开写(1.接口部分:对外声明类的特征和行为.2.实现部分:对内实现行为.)

接口部分

1.接口部分标志:@interface...@end2.作用:声明类的实例变量(特征)和方法(行为).3.包含内容:类名,父类名,实例变量,方法等.

实现部分

1.实现部分标志:@implementation...@end.2.作用:实现方法,即实现类的行为.

类和文件

.h称为接口文件或头文件,.m称为实现文件

创建对象

1.创建对象分两步:分配内存空间和初始化.2.分配内存空间:根据类中声明的实例变量为对象分配内存,并返回首地址.3.初始化:为对象的实例变量设置初始值.

创建对象

+(id)alloc;(+,表示这个方法属于类,只能类执行,id返回值类型,表示任意类型的对象)-(id)int;-表示这个方法属于对象,只能对象执行.id返回值类型,表示初始化完成的对象.

使用对象

指针存储对象的首地址,代指对象.

简单方法

OC中的方法分两种:类方法和实例方法.

类方法

只能类使用.例如:+(id)alloc,注意:类方法中不能使用实例变量.

实例方法:

只能对象使用,例如-init

settergetter

为实例变量赋值方法称为setter,读取实例变量的方法称作getter(访问器);




第二节继承、初始化方法、遍历构造器

知识点

注意事项

继承

面向对象的语言提供了继承语法,能够大大简化代码,把公共实例变量和方法写在父类里,子类只需要写自己独有的实例变量和方法.继承即能保证类的完整,又能简化代码.父类可以有多个子类,子类只可以有一个父类.OC里边继承是单向的,不能相互继承.继承具有传递性,子类能继承父类全部的特征和行为.

继承的特点

OC只允许单继承.没有父类的类称为根类,OC中的根类是NSobject.如果父类的方法不满足子类的需求,子类可以重写父类的方法.继承具有传递性

继承中方法的执行

逐级向上,找到就执行,找不到就崩溃

super

1.super是编译器指令,并非类或者对象.2.作用:super发消息,执行父类中对应的方法.3.子类可以重写父类的方法,子类既可以有自己的实现,又有父类继承中的实现,如果想使用父类的实现,需要向super发消息.

初始化方法

1.创建对象分两步:分配内存,初始化.2.初始化方法的主要作用是:为某些实例变量赋值.3.初始化方法在整个对象生命周期里只使用一次.3.父类中声明了公共的实例变量.作为父类也应该有自己的初始化方法,为这些公共实例变量赋初值.4.子类定义了除父类公共实例变量外的实例变量,在自身的初始化方法中,优先向super发送init消息,初始化公共变量,初始化成功后,再初始化自身特有变量,从而完成自身全部实例变量的初始化.

初始化过程

1.执行父类中实现的初始化方法(向上递归到NSObject类中的初始化方法).2.从根类NSObject开始执行初始化方法3.判断父类中的初始化是否成功,self是否存在.4.完成对象的初始化设置,返回对象.5.初始化子类实例变量.

初始化方法特征

1.初始化方法是”—”号方法.2.init开头.3.可以带0到多个参数.4.返回值是id或者instancetype类型.5.内部实现:先执行super的初始化方法,再初始化自身变量,最后returnself

便利构造器

1.便利构造器在初始化方法的基础上前进了一小步,封装了对象的创建过程.2.便利构造器以”+”方法,返回本类型的实例对象,方法名以类名开头.3.可以有0到多个参数.4.内部实现:封装了alloc和初始化方法,使用起来更加方便.



第三节属性

日期

任务

settergetter方法

setter是赋值方法,getter是取值方法

属性

属性是Objective-C2.0定义的语法为实例提供了settergetter方法的默认实现,能在一定程度上简化程勋代码,并且增增强实例变量的访问安全性

属性的声明

使用@property声明属性,相当于在@interface里声明了两个方法(settergetter)

属性的实现

使用@synthesize实现属性,相当于在@implementation中实现了两个方法settergetter

属性的属性

为属性提供了一些关键字用以控制setter,getter的实现细节,这些关键字称为属性的属性(attribue),一共有三大类attribue

属性的属性

第一类:读写性控制(readonly,readwrite)readonly只声明getter方法,setter方法,readwrite告诉编译器即声明setter又声明getter

nonatomic

程序开发过程中,settergetter处处都在用,如果使用atomic,需要不断地队setter,getter加锁解锁以保证线程访问安全,会很占用系统资源,降低系统性能.通常设置为nonatomic,某些属性需要线程安全时,才定义为atomic

属性的属性

第三类:语义设置assign,retain,copy,使用assign修饰属性时,setter,getter内部实现是直接赋值

点语法

点语法是Objective-C2.0定义的语法格式,提供了一种便捷的属性访问方式.凡是符合系统默认setter,getter书写格式的方法都可以使用点语法



第四节字符串与数值对象

知识点

注意事项

苹果帮助文档的使用(文档的基本信息)

Inherits from 继承自;

Conforms to 遵循什么协议;

Framework 属于哪个框架 ;

Availability 什么时候可用的

Declared in 声明在什么头文件里 ;

Related documents 相关文档

Sample code 示例代码

字符串

c语言中,字符串是由char(ASCII)字符构成。 

oc,字符串是由unichar(unicode)字符构成 

oc,字符串分为不可变字符串和可变字符串。 

不可变字符串一经创建,内容和长度不可修改可变字符串创建之后,长度和内容可修改。 

不可变字符串的创建

 实例方法:

—initWithString: 

—initWithFormat:

便利构造器

+stringWithString:  

+stringWithFormat:

字符串的常用方法

字符串分割 ;

字符串拼接;

字符串替换;

字符串比较

字符串分割

字符串分割:

 -substringToIndex: 

-substringFromIndex: 

-substringWithRange:

字符串拼接

字符串拼接:-stringByAppendingString: 

字符串替换

字符串替换:

—stringByReplacingCharactersInRange:withString:

—stringByReplacingOccurrencesOfString:withString: 


字符串比较

—isEqualToString: 

可变字符串(NSMutableString)

NSMutableString继承于NSStringNSMutableString创建出来的字符串,一个动态的可变字符串,可以对其进行增删改查.

可变字符串(NSMutableString)的创建

实例方法:
—initWithFormat: 

—initWithString: 

便利构造器

+stringWithFormat:

+stringWithString: 

NSMutableString的方法

字符串拼接 —appendString: 

字符串插入—insertString:atIndex: 

字符串删除—deleteCharactersInRange: 

字符串小结

不可变字符串的修改操作,本质就是得到一个新的字符串。 

不可变字符串的修改方法以string开头,返回值。 

可变字符串的修改方法没有返回值,修改原字符串。 

数值对象的作用

数值对象可以完成标量(int,float,结构体,指针等)与对象类型的相互转换。 

数值对象(NSNumber)常用方法

基本类型(int,float)转换成对象类型

对象类型转换成基本类型(int,float) 

+numberWithInt:

+numberWithDouble: 

—intValue

—doubleValue 

数值对象(NSValue)常用方法

NSValueNSNumber的父类 

结构体转换为NSValue类型对象 

NSValue类型对象转换为结构体 

+valueWithRange: 

+valueWithPointer: 

—rangeValue

—pointerValue 


未完下接OC大总结(下)
关注博主

欢迎学习本文档,未经博主允许,不得私自转载!
1
0
查看评论

OC语言三大特性

三大特性为:封装,继承,多态 一、封装(成员变量的封装)     1. set方法(提供一个方法,让外界设置成员变量的值,可以在方法里面对参数进行过滤)         命名规范:1>方法名必须以set开头 2>set后面跟上成...
  • wl635512958
  • wl635512958
  • 2014-12-05 18:02
  • 329

OC语言特点

1.兼容性:
  • Gorgeous_Xie
  • Gorgeous_Xie
  • 2014-08-03 21:45
  • 734

面试题——OC的语言特性

OC做为一门面向对象语言,自然具有面向对象的语言特性,如封装、继承、多态。他具有静态语言的特性(如C++),又有动态语言的效率(动态绑定、动态加载等)。整体来说,确实是一门不错的编程语言。 现在,让我来想想OC的动态语言特性。OC的动态特性表现为了三个方面:动态类型、动态绑定、动态加载。之所以叫做...
  • yq7788998
  • yq7788998
  • 2016-01-19 18:22
  • 416

OC语言大总结(下)

根据OC学习的知识点,总结了一下,希望能帮到大家! 作者:韩俊强   未经允许,请勿转载! 关注博主:http://weibo.com/hanjunqiang 上接:http://blog.sina.com.cn/s/blog_814ecfa90102vuu1.htm...
  • qq_31810357
  • qq_31810357
  • 2015-10-08 09:06
  • 1036

OC语言——三大特性-继承与多态

继承是oc中比较常见的。 1、继承: 就是当两个类拥有相同的属性和方法时,就可以将相同的东西抽取到一个父类中。子类可以拥有父类中所有的成员变量和方法。 2、继承的好处: 可以抽取重复代码,节省时间。建立了类之间的关系。 3、使用注意: 父类必须写在子类前面 子类不能拥有和父类相同
  • linfenpipi
  • linfenpipi
  • 2015-03-01 09:08
  • 978

一次编程大作业的心得

前几天(准确说从前两个星期就断断续续开始了,只是前几天才正式编码)完成了网络程序设计的大作业:一个即时通讯程序。居然有3天时间在debug。 编程的过程中被bug折磨的内分泌失调。使我不得不总结一下: 1.在动手写代码之前应该规划一下程序的框架。思路清楚之后才开始敲代码。要不后面会反复修...
  • shimachao
  • shimachao
  • 2012-12-24 23:18
  • 2155

对OC的理解 以及 OC的特性

OC作为一门面向对象的语言,自然具有面向对象的语言特性,如:封装、多态、继承。它具有静态语言的特性,又有动态语言的效率。总体来说,它确实是一门不错的编程语言。Objective-C 具有相当多的动态特性,表现在三个方面:动态类型、动态绑定、动态加载。之所以叫做动态,是因为必须到运行时才会做一些事情。...
  • gogosmilex
  • gogosmilex
  • 2015-09-21 11:28
  • 840

【IOS 开发学习总结-OC-39】★★ios开发之 MVC 模式

MVC——Mode(模型),View(视图),controller(控制器)这三部分以最小的耦合协同工作,提高应用的可扩展性和可维护性。MVC是所有面向对象程序设计语言都应该遵守的规范。经典的 MVC 模式经典的 mvc模式中,事件由控制器处理,控制器根据事件的类型改变模型或视图,反之也是如此。——...
  • senwin2009
  • senwin2009
  • 2015-10-10 13:37
  • 767

OC语言中类的三大特性及本质(一)

OC语言同C++,C#,java等其他面向对象语言一样,都有类的概念。其他语言通常以关键字class声明一个类,但是OC语言却是以@interface声明一个类。类的定义OC类声明以@interface开头,后面紧跟类名,以@end结束。声明如下:@interface classname //声明成...
  • u010213393
  • u010213393
  • 2015-11-14 13:23
  • 686

OC完整总结

面向过程的编程(procedure-oriented programming,POP:以事件为中心,关心完成事件的详细步骤,一步一步如何实现) 面向对象的编程(Object Oriented programming,OOP,以事物为中心,也就是参与事件的参与者,设计事物的功能,而完成事件只是所有功...
  • qq_17794197
  • qq_17794197
  • 2014-08-17 16:26
  • 502
    个人资料
    • 访问:596987次
    • 积分:7046
    • 等级:
    • 排名:第3887名
    • 原创:240篇
    • 转载:10篇
    • 译文:1篇
    • 评论:214条
    我的微信公众号

    iOS开发者交流群: 官方付费群
    ①群:446310206
    ②群:426087546


    QQ: 点击这里给我发消息


    关注我的技术公众号,每天都有优质技术文章推送。
    微信关注我的公众号
    关注我的微博
    博客专栏
    我的小仓鼠

    有空帮我喂下仓鼠,谢谢!