iOS笔记:第九篇 OC 简介

 

第一节   OC简介

 1.OC简介

    1OC是在C语言基础上增加了面向对象的语法

    2OC是一门面向对象的语言


 2.第一个OC程序

    2.1 #import 导入文件

        功能与#include类似,但是它可以自动防止文件的重复包含

        #import 用法与#include相同

        #import <> 包含系统的头文件

        #import ""包含自己项目中的头文件的


    2.2 NSLog()函数:是OC提供的用于日志输出的函数,与printf类似

        相同点:都是向控制台输出内容,都支持格式化输出

        不同点:

            ->printf函数中的格式化字符串,是C语言的字符串

            ->NSLog中的字符串是一个NSString的对象,表现形式@"格式化字符串"

            ->NSLogprintf多了一种格式符(占位符)%@ 作用:用于输出对象

            ->NSLog自动换行

            ->带有日志信息

 

    2.3 NS 前缀:在Foundation中所有类或全局的函数都是以NS开头

        OC前缀的作用:为了区分不同项目中使用到相同的名字东西(全局函数,结构体,枚举,类...)


    2.4 @作用:

        1)在OC中大部分关键字都是以@开头

        2@快速创建不可变对象,只有系统提供特定的对象才能使用@符进行快读创建(@""快速创建一个NSString的对象)


 3.OCC语言的对比

    ->源文件对比

        C语言 .h头文件 .c实现文件 OC .h头文件 .m支持OCC语言混合编程 .mm支持OCC++混合编程

    ->关键字:OC中增加了很多以@开头的关键字

    ->数据类型的对比

        基本上所有的数据类型都可以定义变量,都可以作为函数行参类,做为函数的返回值类型

        BOOL 逻辑类型 只有两个取值 YES1)真 NO0)假

        NSObject * 对象类型

    ->流程控制:C语言所支持的流程控制OC都支持

              OC增加了forin(增强for循环),用于遍历OC的集合对象(NSArray(数组)...)

    ->函数对比

        C语言:函数 返回值类型 方法名称 (行参类型 行参名称 ...)

        OC : 方法 方法类说明符(返回值类型方法名1withxxx:(行参类型行参名称;

            对象方法:以 - 开头

            所有方法声明中,遇到数据类型都要使用()括起来

            一个:对应一个参数

            类方法:以 + 开头

          

                        第二节   面向对象

 1.面向对象的特点:强调是具有某种功能的对象

    关注:当需要解决某个问题时,首先要考虑要什么样的对象,然后指挥对象做事情


 2.使用面向对象的语言进行软件开发的步骤:

    1>从现实生活中的对象中-抽象->类(类名,属性,行为—)->使用OC语法定义类->使用类创建对象->指挥对象做事情

    2>OC中类和对象关系:只有有了类才能创建对象

    3>类定义:

        类的声明

        作用:

            1)声明成员变量(实例变量),作用:当创建对象的时候,方便为这些对象分配存储空间

            2)声明方法

                格式:@interface 开头,以@end结尾

                    声明成员变量,必须在大括号中

                声明方法,必须在大括号下面

             @interface 类名 : NSObject

             {

             //  需要声明的属性:格式:数据类型 成员变量名称;

                int _height;

             }

             //声明对象方法

             - (返回值类型方法名称;

             @end

        类的实现

            格式:@implementation 开头,以@end 结尾

             @implementation 类名

             - (返回值类型方法名称{

             语句...

             .....

             }

             @end

 

 3.对象:在面向对象的世界中,一切皆对象.(对象是数据(状态特征)与行为(功能)一种封装体)


 4.:现实生活中的对象的抽象(把现实生活中具有相同状态特征,和行为特征的事物的共性提取出来的过程我们就称为抽象)

     把现实生活中对象抽象称为类的过程就是类的设计.


 5.类和对象关系:

    1) 从现实生活来说,类是对象的抽象

    2) 编程角度:只有有了类才能创建对象


 6.类的设计:

    类包含三个要素

        1)类名

        2)属性

        3)行为


 7.设计的方法:

    1)名词提炼法

    2)画面提取类(只有有相同特征的事物都可以提取称为一个类)


 8.对象方法

     无参无返回值对象方法

     格式:

     - (void) 方法名称;

     无参有返回值的对象方法

     - (返回值类型方法名称;

     有一个参数的对象方法

     - (返回值类型功能说明+参数说明符:(形参类型)形参名称

     - (void) callToTel:(NSString *) phoneNum;

     有多个参数的对象方法

     - (返回值类型功能说明+参数说明符:(形参类型)形参名称 参数说明符1:(形参类型1)形参名称1

     - (void) sendMessage:(NSString *) message toTel:(NSSTring *) phoneNum;

     

 9.对象方法与函数的区别

     对象方法:

     1.对象方法是属于对象的

     2.只有一个对象才能调用对象方法

     3.对象方法必须是一个 "-" 开头

     4.对象方法必须在@interface @end直接声明

     5.对象方法必须在@implementation @end直接实现

     函数:函数可以下文件任意位置(除了 @interface @end 之间)

     所有的函数都是平行的,没有隶属关系

     注意点:对象方法不可以像函数一样调用

 

                        第三节   NSString 的基本使用

1.C语言中表示字符串方式

    1) 字符数组:C语言的字符串的长度是,除了\0以外的字符所占用的存储空间的字节个数

        char str[] = "张三";

        unsigned long length = strlen(str);

        NSLog(@"%zd",length );

    2) char 类型的指针

        char *str1 = "张三";

 

    本质字符数组是在栈中,在栈中东西可以任意修改

        char * 定义的字符串存储在常量区,常量区是只读区(readOnly)


 2.OC 中是通过一个NSString的对象来表示一个字符串的

    创建NSString对象:

    方式1:通过@"" 方式创建字符串

        NSString *str = @"创建一个字符串";

        NSLog(@"%@",str);

    方式2:

        后面的写法与NSLog是一致的

        int age = 10;               //格式化字符串        参数

        NSString *str1  = [NSString stringWithFormat:@"age = %d,name = %@",age,@"张三"];

        NSLog(@"%@",str1);

    获取字符串长度,这个长度是字符串中字符的个数

        unsigned long len  =  [str length];

        NSLog(@"%zd",len);

 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值