您的位置:首页 > 移动开发 > Objective-C

黑马程序员—Objective-C基础_基本语法

2014-03-27 00:20 435 查看
---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流!
----------------------

OC语法概要

OC是在C语言的基础上,增加了一层最小的面向对象语法。它完全兼容C语言,可以在OC代码中使用C语言代码,甚至是C++代码。
OC中大部分关键字都以“@”开头,字符串也是以@开头。如:@import、@"abc"
OC的基本数据类型包括:char、int、float、double、BOOL。BOOL有两个取值YES和NO,相当于1和0。

OC中空值表示用nil

屏幕输出时使用NSLog(@"hello"); 如下:第一个OC程序
#import <Foundation/Foundation.h>

 int main()
{

    NSLog(@"第一个OC程序");

    return 0;


这里#import的作用和#include一样,都是用来拷贝文件内容的。而且可以防止文件内容被重复拷贝。

Foundation开发OC程序必备的框架,包含了很多常用API(应用编程接口)。框架中包含很多头文件,如需使用框架内容,只要包含主头文件Foundation.h即可。

OC程序文件类型名为.m。如果程序中使用Foundation框架时, 链接文件时需要在后面增加框架名称 -framework Foundation。如:cc main.o -framework Foundation

OC是面向对象的编程语言,C语言是面向过程的编程语言。

面向过程主要关注的是解决问题的步骤,面向对象关注的是解决问题需要的对象

类和对象
类的声明

@interface Person : NSObject
{
    @public
    NSString *name;
}
- (void) run;
@end

成员变量

@interface{}中声明的变量:name,默认初始化为0。

@public可以让Person对象的属性被外界访问

NSObject可以让Person类具备创建对象的能力

对象方法

- (void)run;是一个对象方法

- 用减号表示对象方法

void是方法的返回值类型,表示无返回值。必须用()括住

run是方法名。

类的实现

@implementation Person

- (void) run
{
    NSLog(@"跑一圈");
}
@end

实现Person类中声明的方法。

创建对象

int main()
{
    Person *p = [Person new];
    
    p->name = @"rose";
    
    [p run];
    
    return 0;
}

创建对象时,使用指针指向对象在内存中地址。

访问对象成员变量时使用->

调用对象方法[对象名 方法名];

成员变量的作用域

@public:在任何地方都能直接访问对象的成员变量

@private:只能在当前类的对象方法中直接访问(@implementation中默认是@private)

@protected:可以在当前类及其子类的对象方法中直接访问(@interface中默认是@protected)

@package:只要处在同一框架中,就能直接访问对象的成员变量

@interface和@implementation中不能声明同名成员变量 

带参数的方法

-(int) sumWithNum1:(int)num1 andNum2:(int)num2;

方法的参数写在方法名后面,参数类型用括号括起来。一个参数对应一个冒号:(冒号也是方法名的一部分)

方法和函数的区别

方法:

1> 对象方法都是以减号 - 开头

2> 对象方法的声明必须写在@interface和@end之间 
3> 对象方法的实现必须写在@implementation和@end之间
4> 对象方法只能由对象调用,归这个对象和类所有

函数 :
1> 函数可以写在文件中的任何位置
2> 函数调用不依赖对象

3> 函数内部不能直接通过成员变量名访问对象的成员变量 

方法可以分为对象方法和类方法两种。

对象方法:以减号 - 开头,只能由对象调用。在对象方法中能访问当前对象的成员变量。

类方法:以加号 + 开头,只能由类调用,类方法中不能访问成员变量。

使用类方法可以提高程序效率。当方法内部不需要使用成员变量时,可以写成类方法。类方法和对象方法可以同名。

- (int) sumWithNum1:(int)num1 andNum2:(int)num2

{

    return num1 + num2;

}

这个方法接收两个整数,返回他们的和。当这两个参数为外界传递的参数时,可以写成类方法。

+ (int) sumWithNum1:(int)num1 andNum2:(int)num2
{

    return num1 + num2;

}

---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流!
----------------------
详细请查看:http://edu.csdn.net
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: