黑马程序员——OC学习——基础语法一

来源:互联网 发布:淘宝申请客服介入流程 编辑:程序博客网 时间:2024/06/06 02:19

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

1. import和include的作用和区别:

作用:import和include都是引入头文件,并且防止重复包含

区别:include是使用与处理指令防止重复包含,如果没有或不小心删除了预处理指令,则无法防止重复包含


2. Foundation/Foundation.h是什么?

Foundation/Foundation.h包含了大量头文件,引入它相当于把OC的库文件都引入过来


3. NSLog和printf的差异使用:

  • NSLog可以自动换行,而printf不能
  • NSLog会自动输出项目信息,而printf不会
  • NSLog的参数是一个NSString对象,而printf的参数是一个字符串指针
OC中特有字符串表示方法,用%@输出字符串,而C语言中使用%s

eg:NSString *str=@“张三丰”;

NSLog(@"str=%@",str);


4. OC中注释及@符号使用

OC中注释:

  • 单行注释     //
  • 多行注释     /*      */
  • 文档注释    /**
  •    *方法介绍
  •                    *
  •    *@prama 形参名   参数描述
  •    */
程序编译时不对注释做任何处理


@“”:表示把C的一个字符串转化为OC的字符串对象NSString

@标示符:OC中大部分关键字以@符号开头    eg:@interface    @end     @class


5. OC和C的差异学习

源文件对比:

C中源文件:.c    .o    .out    .h

OC源文件:.m                     .h


OC中独有的数据类型:

类型描述BOOL字面常量是YES或NONSObject*OC中对象类型id动态对象类型,万能指针SEL选择器数据类型block代码块数据类型


C语言中的32个关键字都可以在OC中使用,OC中新增的关键字在使用时,部分关键字以@开头

OC中没有增加新的流程控制语句,但是OC中提供了一种增强型for循环,可以快速遍历数组,字典等集合。示例代码如下:

NSArray *arr=@[@"one",@"two",@"three"];        for (NSString *str in arr) {            NSLog(@"%@",str);        }

函数的声明和定义的差异

C语言中函数的声明

int max(int x, int y);

函数定义

int max(int x, int y){

return x>y?x:y;

}

OC中习惯把函数称为方法,方法声明

-(int)max:(int)x andY:(int y);

方法定义

-(int)max:(int)x andY:(int y){

return x>y?x:y;

}


OC中新增异常捕捉机制

@try {

            <#Code that can potentially throw an exception#>

        }

        @catch (NSException *exception) {

            <#Handle an exception thrown in the @try block#>

        }

        @finally {

            <#Code that gets executed whether or not an exception is thrown#>

        }


6. 面向对象编程

编程实质:

  • 面向过程:注重解决问题的步骤
  • 面向对象:关注解决问题需要哪些对象
面向对象基于面向过程

面向对象优点:大幅度提高软件项目的成功率,减少维护费,提高可移植性和可靠性

面向对象有三大特性:

  • 封装
  • 继承
  • 多态

7.类和对象

类:具有相似的内部状态和运动规律的实体的抽象

对象:现实世界中各种各样的实体,既可以指具体的事物也可以指抽象的事物


OC中类的定义有两部分:类的声明和类的实现

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

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

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

+:类方法(静态方法)

-:对象方法(动态方法)

成员变量(实例变量/属性)的作用域有3种:@public   @protected  @private

类的声明:

@interface 类名:父类名

{

//定义类的属性

}

//声明类的行为(方法)

@end


类的实现:

@implementation 类名

//行为(方法)的具体实现

@end


8. 创建一个对象并访问成员变量

OC中对象创建用关键字new或alloc  init   eg:Car *car=[Car new];   Car *car1=[[Car alloc] init];

创建对象实际上创建的是一个对象指针

对象创建时完成三件事情:

申请内存空间

给类中的每一个成员变量初始化值

返回新申请空间的首地址

用指针间接访问实例变量:eg:car—>speed=100;







0 0
原创粉丝点击