美文网首页
Objective-C基础入门(一)

Objective-C基础入门(一)

作者: injet | 来源:发表于2019-05-13 20:56 被阅读0次

    首先我们来看时钟类clock的设计


    clock类.png

    前缀@是objective-c(以下简称OC)特有的标识符,常用在使用类和对象的情况中。
    @interface 是实现一个接口,这里是实现Clock类的接口。Clock:后面的NSObject意思是继承NSObject类。

    类的属性声明使用@property ,比如图片中的@property int minute;声明了一个整型变量minute(分钟)。正如我们所知,时钟类应该有时、分、秒,对应着hour,minute,second。

    -(void)中的-号表示的是实例方法(instance method),需要实例来调用。相反,+号表示类方法,不需要实例就可以调用。show方法的作用是将时钟打印出来,它的实现我们在另外一个文件写相应的代码。

    对类的定义以@end结束

    接下来我们看Clock类的实现文件。


    类的实现.png

    首先我们使用#import 把相应文件导进来,有c语言基础的同学都知道头文件是用#include<xxx.h>,而OC是用#import。这里的<Fundation/Fundation.h>是基础头文件,包含了输入输出等。

    接下来是把刚才的Clock.h 导进来。
    @implementation 是实现区块的开始,实现区块可以对公有方法、私有变量及方法进行实现。
    show方法实现输出时钟类的三个属性,这里面的self类似于C++里面的this指针,也和python里的self相似。

    NSLog()这个函数是输出函数,类似于C里面的printf()函数。
    字符串前面的@,是OC的特点,这被称为常量NSString的对象。NSString例程是OC库中的一个函数,它只能显示或记录参数。但是它前面会显示该例程的执行的日期和时间。
    实现区块以@end结尾。

    最后我们来看程序入口,即main()函数所在的文件。


    main.png

    这里的main 函数和c语言的main函数很像。
    我们的代码是放在@autoreleasepool所包含的代码块里,这个autoreleasepool由于笔者还没学到先暂时放一放。

    [[Clock alloc] init] 是OC特有的消息传递机制,一般模式为:
    [消息传递对象 消息]
    刚才那条语句的意思是先在内存空间中分配(alloc)一段内存,然后再初始化(init),这样我们就初始化好了一个Clock对象指针c。

    由于我们没有设置构造函数,所以得给属性赋值,即c.second =

    OC的函数调用不像c++直接用"."来调用,而是用我们刚才讲的消息传递机制。

    编译运行结果:


    结果.png

    相关文章

      网友评论

          本文标题:Objective-C基础入门(一)

          本文链接:https://www.haomeiwen.com/subject/eooraqtx.html