iOS开发基础――OC之OOP详解

这一节内容主要是OC中的面向对象OOP内容,那么我们直接进入主题吧!首先一起了解的是OOP是什么?

一、OOP的概念

在iOS开发学习中非常重要,因为Cocoa基于OOP概念,而且objective-c是一种面向对象语言。至于概念,维基解释:它将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性、灵活性和扩展性。
1、类

因为Cocoa基于OOP概念,而且objective-c是一种面向对象语言。至于概念,维基解释:它将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性、灵活性和扩展性。

.h头文件

151637998.jpg

.m代码文件

151657175.jpg

initWithUserName()方法的返回值的数据类型为id,在Objective-C里面叫做指针类型。Objective-C的对象的定义,可以支持强类型的实例,以及弱类型的实例的定义。简单的说,强类型就是定义该实例的时候必须指明类的名字,弱类型就是没有指明类的名字。下面给大家看看实际的代码就会明白,定义这两者的时候的区别。
MYHelloWorld*myHelloWorld1;//强类型(Strongtyping)
idmyHelloWorld2;//弱类型(Weaktyping)
方法(Methods)

方法Methods又可称为函数。在Objective-C里的类可以定义两种方法。一种是实例的方法,一种是类的方法。实例的方法局限于某个类的实例,也就是必须定义这个类的实例之后,才能被调用执行的方法。类的方法不需要创建实例,直接通过类的名称就可以被调用执行的方法。

定义一个方法需要:方法名(一个或者多个关键字),返回值类型,参数类型和参数名。负号[-]表示该方法为实例的方法,该方法的名称加上各个关键字包括冒号即为[insertValue:atIndex:]。

151728674.jpg

Objective-C调用方法是通过发送消息给对应的实例对象。

发送消息是通过一对方括号[]来实现的。在括号的里面,实例对象在左边,消息以及参数等的定义在右边。

并且必须熟悉中缀符(中间的冒号)。例如:

[anObjectinsertValue:anObjatIndex:1];

为了避免生成多余的临时变量,Objecttive-C容许直接使用消息的结果。如下例:

[[anObjectgetArray]insertValue:[anObjectgetValueToInsert]atIndex:0];

类的方法,类和静态方法很相似,常用于作为工厂模式中用来生成新的实例。定义时和实例的方法不同的是开头的符号为加号[+]。调用的类的方法和调用(StaticFunction)基本相同,直接通过类名就可以。

例如:NSMutableArray*myArray=nil;//nil等同于通常的NULL
//创建一个动态数组,并且制定最初的大小

myArray=[NSMutableArrayarrayWithCapacity:19];

tips:大家要注意,在.h文件中的冒号,在没有参数的方法后面不需加冒号,冒号后面是一定要跟参数的。在@implementation中,可以定义在@interface中没有相应声明的方法,将它们看做私有方法,那么只在类的实现中使用。在OC中并不存在真正的私有方法,所以一旦这样做了,从该实现之外依然可以访问该方法。

写的太多了,连我自己都有点混了,不过你可不要混哦!因为在你看过之后一会会对你有很大的帮助的。


你可能感兴趣的:(oop,ios开发,iPhone开发,ios培训)