首页 > 其他 > 详细

OC基础以及类的创建、调用,无参函数创建调用

时间:2015-10-20 12:08:20      阅读:1159      评论:0      收藏:0      [点我收藏+]

OC基础以及类的创建、调用,无参函数创建调用

一、NSLog和printf使用的差异

1、NSLog会自动换行,printf不会自动换行

2、NSLog会自动输出时间等项目信息,printf不会输出调试信息

3、NSLog函数的参数是一个NSString对象,printf是一个字符串常量指针

 

二、NSLog也能格式化输出,OC向下兼容C

OC中自己有字符串的表示方法:

NSString *str = @"苹果";

NSLog(@"%@",str);

printf不能使用

 

三、OC中@的使用

1)@"":表示讲一个C的字符串转黄伟OC的字符串对象NSString

2)@标识符:OC中大部分关键字都是以@开头的,比如@end等

四、OC中注释:不参与编译

1、单行注释://

2、多行注释:/**/

3、文档注释:

/**

*

*@param foodName  参数描述

*

*/

基本中:OC是C的一个扩展

 

五、OC与C的差异

1、源文件对比

1、C语言中后缀:.c源文件;.o目标文件;.out可执行文件;.h头文件

OC的后缀:

   .h头文件:头文件包含方法,属性的声明

   .m源文件:类的实现文件,参与编译的文件,用来实现类中声明的方法

2、基本语法对比

   C常用的数据类型:

技术分享

OC中的数据类型

技术分享

 

2) 关键字注意事项:C语言的关键字都可以在OC源程序中使用,在OC新增的关键字使用时,要注意部分关键字以@来投,有的不使用@

3) 流程控制语句在OC中并没有新的,只是for循环有一个增强型的

4) 函数的声明与定义是有差异的

/*OC中新增数据类型介绍

1)Boolean类型的变量经常用于条件判断:取值true(1)与false(0)

2)BOOL存放逻辑值得另外一种方法:取值为YES(1)与NO(0)

*/

 

/*并不能检测所有

新增异常捕捉方法:@try...@catch...@finally

@try

{此处存放可能出错的代码}

@catch

{此处放出错以后,捕捉异常}

@finally{不管出错没有,这里的代码一定要执行}

*/

 

 

/*

类:

.h:类的声明文件,用于声明成员变量、方法。类的声明使用关键字@interface和@end

.m:类的实现文件,用于实现.h中声明的方法。类的实现使用关键字@implementaion和@end

方法:

方法的声明和实现都必须以“+”“-”开头

+ 表示类方法(静态方法)

- 表示对象方法(动态方法)

在.h中声明的所有方法作用域都是public类型,不能更改

成员变量(实例变量\属性):

@public 全局都可以访问

@protected 只能在类内部和子类中访问

@private 只能在类内部访问

*/

/*

类的定义分为两部分

1)类的声明(规定当前类的:类名、属性、行为)

       @interface  类名:父类名      (NSobject)

       {

        //定义类的属性

       }

       //类的行为

       @end

2)类的实现(实现具体行为)

       @implementation  类名

       //行为的具体实现

       @end

*/

 

//创建一个类,并且创建一个对象,并且用对象访问存储空间的值

/*创建一个新对象:Car *car=[Car new];*/

#import <Foundation/Foundation.h>

//车的类的声明

@interface Car:NSObject

{

   //类的属性

   @public;

   int lunzi;//车的轮子

   NSString *color;//车的颜色

   int speed;//车的速度

}

//类的行为

@end

//类的实现

@implementation Car

//行为的具体描述

@end

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

{

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

  

    //在此处输入Objective-C代码

     

   //创建Car类型的对象car1

    Car *car1=[Car new];

    //创建一个对象,实质还是指针   (用指针间接访问实例变量值)

    car1->lunzi=3;

    car1->speed=150;

    car1->color=@"蓝色";

    //查看车的信息

    NSLog(@"轮子:%d,速度:%d,颜色:%@",car1->lunzi,car1->speed,car1->color); 

    [pool drain];  

    return 0;

}

/*OC中对象的创建

   [Car new]; 

   //做了三件事

   1、项计算机申请内存空间

   2、给类中的每一个成员初始化值

   3、返回申请的空间的首地址

  

   Car *p=[Car new];

   理解一:

   //定义了一个Car类型的指针变量

   //指针变量指向新申请的内存空间

   理解二:

   //用Car类实例化了一个实例对象,对象的名称是p

*/

 

//无参方法声明,实现,调用

#import <Foundation/Foundation.h>

@interface Car:NSObject

{

   //类的属性

   @public;

   int lunzi;//车的轮子

   int speed;//车的速度

   NSString *pp;//车的颜色

}

//类的行为

-(void)run;//定义一个无参无返回值的方法

-(void)stop;

@end

//类的实现

@implementation Car

//行为的具体描述

-(void)run{

   NSLog(@"车跑在大道上");

   }

-(void)stop{

   NSLog(@"车停下来!");

   }

@end

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

{

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

  

    //在此处输入Objective-C代码

    //创建Car类型的对象 对象名 car

    Car *car=[Car new];

    //方法调用方法

    [car run];

    //向car对象发送stop消息

    [car stop];

    [pool drain];

    return 0;

}

/*

无参方法声明

方法类型标示符 (返回值类型) 方法名称:

 

不带参数的方法

声明:

-(返回值类型) 方法名   -(double) pi

方法调用:[类名或者对象名 方法名];

 

对象方法:

   1、对象方法以“-”开头,如-(void) xx;

   2、对象方法只能有对象来说明

   3、对象方法中可以访问当前对象的成员变量

   4、调用格式 [对象名 对象方法名];

 

类方法:

   1、类方法以“+”开头,如+(void) xx;

   2、类方法只能由类来调用

   3、类方法不能访问实例(成员)变量,因为类方法由类来调用,并没有创建存储空间来存储类中的成员变量

   4、调用格式:[类名 类方法名];

   5、类方法不依赖于对象,执行效率高,能尽量用类方法的尽量用

*/

 

OC基础以及类的创建、调用,无参函数创建调用

原文:http://www.cnblogs.com/gaozp/p/4894285.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!