Objective-c 学习 (1)

来源:互联网 发布:index.php 编辑:程序博客网 时间:2024/05/29 14:43

 

Objective-c 学习(1

基本概念

 

 

1,  开发环境:cocoa

Cocoa是由两部分框架组成的:foundation kit [包括一些基础类] application kit.【包括用户接口对象和高级类】

 

2,开发语言:Objective-C

3,开发工具:xcode, Interface Builder

4Import:的作用是让系统导入后边文件的内容到这个程序中。

5,系统自动释放池:

NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];

       #import <Foundation/Foundation.h>

       Int main(int argc, const char *argv[])

{

              NSAutoreleasePool *pool = [[NSAutorelease alloc]init];

              NSLog(@”Hello world!”);

              [pool retain];

              Return 0;

}

 

6,面向对象的分析过程就是将现实世界中的对象抽象为类的过程。

 

7,类:定义了事物的属性和它的行为。是逻辑结构

 

8,对象:是类的实例。

9,对象的实例变量和对象的方法:就是状态和行为 ---数据和对数据的操作。

10,一些类名:NSObject, NSResponder, NSView, NSControl NSButton NSViewController

11,多态:是指同一个接口名称,但是体现不同的功能。有两种方式:覆盖和重载。覆盖重新定义父类的方法。重载是允许存在多少同名方法,便参数不同。

 

 

12,类接口:定义了成员变量和一些公开的方法。类接口的语法格式如下:

    @interface部分:主要用于描述类,类的数据,类的方法。

 

      @interface 类名:父类名{

成员变量定义;

      方法定义;

      @end

 

// 开头的-表示通知Objective-C编译器,该方法是一个实例方法。

 

13,类实现:

14,强类型,弱类型(id)。

大家注意一下initWithUserName()方法的返回值的数据类型为id,是不是感觉这个一般的语言有点区别。其实,这种数据类型类似于C++的指针。在Objective-C里面仍然叫做指针类型。Objective-C的对象的定义,可以支持强类型的实例,以及弱类型的实例的定义。简单的说,强类型就是定义该实例的时候必须指明类的名字,弱类型就是没有指明类的名字。下面给大家看看实际的代码就会明白,定义这两者的时候的区别。

MYHelloWorld *myHelloWorld1;        //强类型(Strong typing
id            myHelloWorld2;        // 弱类型(Weak typing)

顺别提一下,弱类型能给实现设计模式Design Patterns)的时候带来很大的方便。

 

15,实例方法用(-)声明,类方法用(+)声明,类方法直接可以在类中调用,不用创建类的实例。

 

 

16,方法调用(发送消息)

Objective-C调用方法是通过发送消息给对应的实例对象。发送消息的方式其实是和一般的编程语言一样就是调用实例对象的方法,Objective-C独特的地方就是方法的调用是通过一个方法名+零个或多个标示符+零个或多个参数,然而一般的编程语言只需要一个方法名+零个或多个参数就可以了。Objective-C里面之所以把调用方法称为发送消息,大概是因为所有的消息发送之后都是动态传递给实例对象的。并且,如果一个子类定义了一个和父类相同方法名+标示符的方法之后,子类会先收到该消息,然后选择性的是否继续将该消息传递给父类。

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

[anObject insertValue:anObj atIndex:1];

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

[[anObject getArray] insertValue:[anObject getValueToInsert] atIndex:0];

 

 

17,标识符的命名规则:不能以一个数字开头,区分大小写。

命名规制:

1,  类名以大写字母开头。

2,  变量名称:必须以字母和下划线(_)开头,不能是以数字开头。之后可以是任何小写或者大写字母,下划线或者09间数字组合。

sum$value 非法,piece flag非法,名称中间不能有空格。

3person 数字非法。

 

18self在方法内自动定义的本地变量,就是指消息的接收者。Super是指消息接者的父类。

原创粉丝点击