黑马程序员-5-Objective-C学习笔记(OC的初步认识)

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

1. 简介

    (1) Objective-c( OC )是在c语言基础上增加了一层面向对象的语法,对于OC对象本质是C语言结构体。

      (2) OC完全兼容C语言,但要注意的是源文件的扩展名为.m

      (3) 如果要兼容C++扩展名为.mm

      (4) OC可以开发 Mac OS X平台和IOS平台的应用程序

      (5) OC文档存放位置 :  /Applications/Xcode.app/Contents/Developer/ 

      (6) 随着IOS移动设备的普及OC的受欢迎度也逐年升高。

            192709_z5Nf_2245946.jpg 


2. 面向对象编程( OOP )

    a. 面向过程 和 面向对象

           (1) 面向对象是一种思维方式,面向对象编程是利用这种思维方式来进行开发,当然也需要面向对象语言的支持。

           (2) 面向对象是由面向过程演化而来的。如果用面向过程的思维来完成一件事,比如起床上学。

                面向过程 :

                    第一步 : 起床叠被子

                    第二步  : 换衣服刷牙

                    第三步 : 做早饭吃早饭

                    第四步 : 骑车上学

                            它的好处是清晰,简单,但如果某些地方需要改变,起床好的叠被子放在什么地方,今天需要穿什么衣服,今天煮的早饭是什么等等。如果变成代码的话就很难维护。一个地方要改可能很多地方都要改。

                     而且实际开发中项目都比较大,如果用面向过程的思维来开发的话,会大大增加开发的难度,为了解决这个问题面向对象编程就产生了。

                面向对象 :

                    我们可以把上述事件都集中在一个人身上,并为这个人声明者几种行为 :

                    学生{

                        叠被子的功能;

                        洗刷功能;

                        做早饭吃早饭功能;

                        骑车上学的功能;

                    }

                            他的好处是易于维护。因为我们使用这些功能的时候并不关心他的实现功能是如何的,只关心他提供的功能,置于要获得实现效果可以向这个对象调用,这样通过这个对象可以降低这件事情过程中环节                        之间的耦合性,比如今天要求做什么早饭,我们只需要在做早饭那个模块中修改即可,并不影响其他功能。显示开发中对象成千上万,面对不同的需求我们只关需要把注意力集中在该对象中即可,只要不改变该对                        象的结构只修改对象的某些功能实现并不影响整体的稳定性。

    b. 总结

        OC也是一种面向对象的编程语言,因此了解面向对象思想是非常重要,而且OC中为了更好地发挥面向对象编程的好处,提供了协议这种特性,这类似于java中的接口,大大提高代码的可维护性。

3. 语法特点

    (1) 基本上所有关键字都是以@开头 :

        @interface、@implementation、@end 

        @public、@protected、@private、@selector 

        @try、@catch、@throw、@finally  

        @protocol、@optional、@required、@class

        @property、@synthesize、@dynamic

        self、super、id、_cmd、__block、__strong、__weak、

    (2) 字符串表示方法 :

        C 语言 : "hello world"            输出 : printf("%s","hello world");

        OC : @"hello world"                输出 : NSLog(@"hello world");  NSLog(@"%@",@"hello world");

    (3) 其他语法 :

基本数据类型char int float double BOOL(YES/NO)
nil相当于C语言的NULL,也就是0
基本语句
循环语句(while ,do while ,for),条件语句(if ,if else ,switch)
注释// 和 /*..*/
输出NSLog(@"..."); NSlog(@"%@,%d...",...);

    (4) BOOL

        1) 它的定义 :

            typedef signed char BOOL;

        2) 它有两种取值 : YES ,NO

            #define YES (BOOL)1

            #define NO  (BOOL)0

    (5) #import

        1) 作用和 #include相识,都是拷贝文件文本内容

        2) 可以防止文件被多次拷贝 :

    #import <Foundation/Foundation.h>
    #import <Foundation/Foundation.h>
    #import <Foundation/Foundation.h>
    /*
        使用了三次#import指令但实际上 Foundation.h 只拷贝了一份
        那么我们编写头文件的时候就不许要加入以下代码
        #ifndef _FOUNDATION_H_
        #define _FOUNDATION_H_
        #endif
    */
    int main(){
        ...
        return 0;
    }


4. Foundation框架简介 

    (1) Foundation框架是开发 IOS 和 Mac 应用程序必备框架,很多OC面向对象语法都是基于该框架的

    (2) 该框架包含了很多编程接口 : 例如 :NSLog() , 反射等等...

    (3) 如果想使用该框架把整个框架包含进来即可 : #import <Foundation/Foundation.h>

    a. 简单开发

    (1) 源文件 :

    // test.m
    #import <Foundation/Foundation.h>
    int main(){
        NSLog(@"hello world");
        return 0;
    }
    
    /*
        终端编译指令:
        cc -c test.m                         // 得到test.o文件
        cc test.o -framework Foundation      // 得到a.out可执行文件,如果没有使用Founation框架 -framework Foundation 就可以删掉
        ./a.out                              // 执行可执行文件 
    */




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

 详情请查看:http://edu.csdn.net/heima



转载于:https://my.oschina.net/u/2245946/blog/323678

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。
该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值