`
baobaoupup
  • 浏览: 479595 次
文章分类
社区版块
存档分类
最新评论

Object-c笔记1

 
阅读更多
  • 这篇教学 假设你已经有一些基本的 C 语言知识,包括 C 数据型别、什么是函式、什么是回传值、关于指针的知识以及基本的 C 语言内存管理。
  • Objective-C,是 C 的 衍生语言,继承了所有 C 语言的特性。是有一些例外,但是它们不是继承于 C 的语言特性本身。
  • nil:在 C/C++ 你 或许曾使用过 NULL,而在 Objective-C 中 则是 nil。不同之处是你可以传递讯息给 nil(例如 [nil message];),这是完全合法的,然而你却不能对 NULL 如法炮制。
  • BOOLC 没 有正式的布尔型别,而在 Objective-C 中也不是「真的」有。它是包含在 Foundation classes(基本类别 库)中(即 imp<wbr></wbr>ort NSObject.hnil 也是包括在这个头文件内)。BOOL Objective-C 中有两种型态:YES NO, 而不是 TRUE FALSE
  • #imp<wbr></wbr>ort vs #include:就如同你在 hello world 范例中看到的,我们使用了 #imp<wbr></wbr>ort#imp<wbr></wbr>ort gcc 编译程序支援。我并不建议使用 #include#imp<wbr></wbr>ort 基本上跟 .h 档头尾的 #ifndef #define #endif 相同。许多程序员们都同意,使用这些东西这是十分愚蠢的。无论如何,使用 #imp<wbr></wbr>ort 就对了。这样不但可以避免麻烦,而且万一有一天 gcc 把它拿掉了,将会有足够的 Objective-C 程序员可以坚持保留它或是将它放回来。偷偷告诉你,Apple 在它们官方的程序代码中也使用了 #imp<wbr></wbr>ort。所以万一有一天这种事真的发生, 不难预料 Apple 将会提供一个支持 #imp<wbr></wbr>ort gcc 分支版本。
  • Objective-C 中, method message 这两个字是可以互换的。不过 messages 拥有特别的特性,一个 message 可以动态的转送给另一个对象。在 Objective-C 中,呼叫对象上的一个讯息并不一定表示对象真的会实作这个讯息,而是对象知道如何以某种方式去实作它,或是转送给知道如何实作的对象。
  • 编译 hello world
    • hello.m

§ #imp<wbr></wbr>ort <stdio.h>

§

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

§ printf( "hello world/n" );

§ return 0;

}

    • 输出

hello world

  • Objective-C 中使用 #imp<wbr></wbr>ort 代替 #include
  • Objective-C 的预设扩展名是 .m

优点与缺点

  • 优点
    • Cateogies
    • Posing
    • 动态识别
    • 指标计算
    • 弹性讯息传递
    • 不是一个过度复杂的 C 衍生语言
    • 可透过 Objective-C++ C++ 结合
  • 缺点
    • 不支持命名 空间
    • 不支持运算符多载(虽然这常常被视为一个优点,不过正确地使用运算符 多载可以降低程序代码复杂度)
    • 语言里仍然有些讨厌的东西,不过不比 C++ 多。
  • 创建 classes
    • @interface
      • Fraction.h

§ #imp<wbr></wbr>ort <Foundation/NSObject.h>

§

§ @interface Fraction: NSObject {

§ int numerator;

§ int denominator;

§ }

§

§ -(void) print;

§ -(void) setNumerator: (int) d;

§ -(void) setDenominator: (int) d;

§ -(int) numerator;

§ -(int) denominator;

§ @end

      • NSObjectNeXTStep Object 的缩写。因为它已经改名为 OpenStep,所以这在今天已经不是那么有意义了。
      • 继承(inheritance) 以 Class: Parent 表示,就像上面的 Fraction: NSObject
      • 夹在 @interface Class: Parent { .... } 中的称为 instance variables
      • 没有设定访问权限(protected, public, private)时,预设的访问权限为 protected。设定权限的方式将在稍后说明。
      • Instance methods 跟在成员变数(即 instance variables)后。格式为:scope (returnType) methodName: (parameter1Type) parameter1Name;
        • scope class instance 两 种。instance methods - 开头,class level methods + 开 头。
      • Interface 以一个 @end 作 为结束。
    • @implementation
      • Fraction.m

§ #imp<wbr></wbr>ort "Fraction.h"

§ #imp<wbr></wbr>ort <stdio.h>

§

§ @implementation Fraction

§ -(void) print {

§ printf( "%i/%i", numerator, denominator );

§ }

§

§ -(void) setNumerator: (int) n {

§ numerator = n;

§ }

§

§ -(void) setDenominator: (int) d {

§ denominator = d;

§ }

§

§ -(int) denominator {

§ return denominator;

§ }

§

§ -(int) numerator {

§ return numerator;

§ }

@end

      • Implementation @implementation ClassName 开始,以 @end 结束。
      • Implement 定义好的 methods 的方式,跟在 interface 中宣告时很近似。

分享到:
评论

相关推荐

    Object-C笔记1_代码

    Objective-C,简称Object-C,是苹果公司开发的一种面向对象的编程语言,它是C语言的超集,添加了Smalltalk风格的消息传递机制。本笔记主要关注的是Object-C中的自定义类的定义与调用,这是理解面向对象编程的关键...

    iPhone笔记-Object-c基础

    【Object-c基础详解】 在Objective-C(Object-c)编程中,它是Apple的Cocoa和Cocoa Touch框架的基础,主要用于开发iOS和macOS应用程序。本文将深入探讨Object-c的基础知识,包括指令、类、实例化、访问权限、方法等...

    Object-C语言教程0220.zip

    -qiang.png`可能是教学图片,而`Object-C语言教程0220.txt`则可能是课程笔记或补充资料。 通过学习以上内容,你将能够理解和运用Objective-C进行实际开发。建议结合教程文档、图片和笔记,逐步实践,提升编程技能。

    Object-C 学习笔记

    **Object-C 学习笔记** Objective-C(简称Obj-C或Objective C)是苹果公司基于C语言开发的一种面向对象编程语言,主要用于iOS和macOS平台的应用程序开发。它在C语言的基础上添加了Smalltalk风格的消息传递机制,...

    Object-C语言教程0220.zip基础知识及相关案例

    《Objective-C语言教程0220.zip》是一个包含Objective-C编程基础及实例的课程资源包。这个压缩包中,我们能够找到一系列与学习Objective-C语言相关的材料,包括图像和文本文件,旨在帮助初学者理解并掌握这门强大的...

    Object-C Programming

    Object-C Programming 前面7章的学习笔记,如果觉得好可以下载原本进行学习

    Object-C学习笔记以及demo源码演示含代码文档描述分享给需要的同学

    Object-C学习笔记以及demo源码演示含代码文档描述分享给需要的同学

    object-c学习笔记

    这篇学习笔记主要涉及了Objective-C的基础知识,包括对象创建、类的结构、文件导入、实例变量、接口与实现、内存管理和属性。 1. **对象创建**: - `string`方法创建的字符串对象是自动释放的,意味着系统会在适当...

    object-c入门学习笔记分享-继承.txt

    object-c入门学习笔记分享--继承,初学者可参考

    资源是object-c介绍,同时展现示意demo源码,供大家参考学习

    2. **类与对象**:Objective-C基于C语言,增加了类的概念。类是对象的蓝图,而对象是类的实例。定义类时,需要指定其属性(成员变量)和方法(函数)。 3. **类别(Category)**:Objective-C允许为已存在的类添加...

    xmljava系统源码-NIiOS:iOS端常用知识点总结:Object-C

    Object-C源码解析 1.你真的了解 load 方法么? load 作为 Objective-C 中的一个方法,与其它方法有很大的不同。它只是一个在整个文件被加载到运行时,在 main 函数调用之前被 ObjC 运行时调用的钩子方法。其中...

    vbscript-follow笔记

    8. **与C语言的交互**:虽然VBScript主要用于解释执行,但可以通过调用外部程序(如使用WScript.Shell对象的Run方法)或COM组件(Component Object Model)来与编译后的C程序交互。这可以实现复杂计算或利用C的高...

    讲稿_Robust Multi-Modality Multi-Object Tracking.docx

    这篇讲稿是关于2019年的一篇计算机视觉(CV)领域的论文,主题是“鲁棒多模态多目标跟踪(Robust Multi-Modality Multi-Object Tracking, MMOT)”。多模态多目标跟踪(MOT)旨在在一个场景中同时追踪来自不同传感器(如...

    Objective-c学习笔记

    1. **Objective-C是C的超集**:Objective-C在C语言的基础上增加了面向对象的特性,如类、继承、多态等。它允许程序员通过消息传递来调用对象的方法,而不是像C那样直接调用函数。 2. **消息传递**:在Objective-C中...

    C语言学习笔记 C语言学习笔记

    本压缩包包含的“C语言学习笔记”是一份详尽的C语言学习资料,旨在帮助读者深入理解和掌握C语言的基本概念、语法结构以及实际应用技巧。 一、C语言基础 C语言的基础包括变量、数据类型、运算符、流程控制等。变量...

    iPhone开发基础教程_学习笔记

    Object-C是iOS开发的主要编程语言,它基于C语言并添加了Smalltalk的面向对象特性。对于初学者来说,《Learn Object-C on the Mac》和《The Objective-C 2.0 Programming Language》这两本书是很好的学习资源,它们...

    Redis全套学习笔记 (带章节目录) 完整版pdf

    它提供了Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang等客户端,使用很方便。 本文是一篇关于Redis全套学习笔记的文章,主要介绍了Redis的基础知识、数据结构、持久化、集群、高可用、...

    C语言学习笔记(个人总结)

    - 计算幻数,通常是\(2^{N-1}\)或\(2^{N-1}-1\)。 - 有符号数加上幻数并转换成二进制。 - **实数表示** - **单精度浮点数**: 使用32位表示,其中1位符号位,8位指数位(EXCESS_127),23位尾数位(无符号整数)。 - ...

    objective-c编程入门学习笔记

    Objective-C中的打印输出主要通过`NSLog`函数完成,其用法类似于C语言的`printf`函数,但是使用`@`符号作为字符串的前缀。 ```objective-c NSLog(@"Hello, World!"); ``` ##### 2. 变量与运算 Objective-C支持多种...

Global site tag (gtag.js) - Google Analytics