Objective C学习总结(一)

年纪大了,记忆力明显下降,不得不靠温习和总结来巩固之前所学的东西。除了温习书本上原有知识之外,也加入了个人的一些理解。写出来希望对也正好学习objective-c的朋友有些帮助。有些的不对、不好的地方欢迎留言指正。

Obj-C的类用@interface来声明。@符号作用是告诉编译器,后边的为Object-C特有的内容。

@interface为关键字。几种Obj-C中常用的关键字

1、@interface   用做类的声明,放在.h文件中

2、@implementation  用作类的实现,放在.m文件中

3、@protocol  这个东西据说是协议,目前只知道个概念,还未深入了解

4、@end  用在某些关键字结束位置

5、@selector

6、@protocol  协议

7、@property  属性

8、@synthesize

这些关键字之后都会接触到。

 

我们来看一个具体的类的声明和实现

@interface MyObject : NSObject {
    int memberVar1; // 實體變數
    id  memberVar2;
}
+(return_type) class_method;            // 類方法
 
-(return_type) instance_method1;        // 實體方法
-(return_type) instance_method2: (int) p1;
-(return_type) instance_method3: (int) p1 andPar: (int) p2;
@end

如果你是写c或者c++的,是不是感觉很不习惯,没关系我刚开始和你一样。多看几眼,消化几个晚上就不会再有问题了。我们来详细分析下。

@interface

@end

其实就相当于c++中的

class

{

};

可能会有人大喊,{},声明代码里有这样的大括号。是的,有的,如果说c++里的大括号是个大口袋,变量函数都往里丢的话,这里的大括号就是专款专用的变量区域,因为这里放变量,接口见下。

+

-

不知道你看到这两个符号的时候是啥感觉,反正我当时除了茫然,还很佩服语言开发者,懒,真够懒的,就用这么两个符号来区分函数类型。不过问题也不大,多看看旧习惯了。

+  等同于c++中的static函数

-   就是一般的接口啦

为啥不能省去 - 呢,static函数需要特殊声明,但普通函数没有必要啊,哪位朋友了解,可不可以帮我解释下。

函数返回值以及名称,跟c或c++没有区别,都是

返回值类型 函数名

之后的参数有些不同

函数名后用 “:“ 区分开第一个参数,(int ) p1,这里参数的类型要加 (),不知道为啥。

第二个参数的格式是:

参数说明:(类型)参数名称

书上说这种写法的好处是,可读性更强,但是参数名称不可以达到次效果吗?这种做法是不是多此一举呢?我先不做结论,因为目前还接触的不深。

例子代码:
- (void) setColorToRed: (float)red Green: (float)green Blue:(float)blue;
 
[myColor setColorToRed: 1.0 Green: 0.8 Blue: 0.2];

 

 

差点忘了说”继承“了,其实继承和C++的没啥区别。这个类继承自NSObject,NSObject就类似于CObject,是所有NS类的基类。

 

说明:本文中代码摘自http://zh.wikipedia.org/wiki/Objective-C

posted on 2011-06-13 16:32  荒原小兽  阅读(425)  评论(0编辑  收藏  举报