一首关于Objective-C的入门诗

C没有类

这让人很疲惫

对象的说法很时髦

不就是继承封装组合人人会

右走是C++,这个大众都熟悉它

左走就是objective-c,躲在僻静僻静的麦金塔

本是同根生的C

如何高举面向对象的大旗

求同存异标新立异且听一一细分清

对象的C

是不同的C

类的处理与众不同重点要区分

不重复是我的口头禅

任何时候我只说一次告诉你我的地盘

[@begincommand] | @end就是我的指示

@interface classname 声明类

@implementation classname 实现类

@protocol interfacename 声明接口

就是这么简单,你的一定要明白

我先声明对成员变量和方法的关系有远近

成员变量大大括在我的怀

关系远近 public / protected / private 来区分

若不声明全默默受着保护

静态成员变量请不要放在此

成员方法我不太爱

前面拴着绳子置于类的变量列表外

减号就是普通函数

加号就是静态函数莫怪

函数的声明有点怪

我要一眼叫出名,包括函数名和参数名

其余的类型括起来,我有空再来慢慢看

函数名和参数名之间用:分隔开

多个参数的函数那就是更怪

逗号其实不是我的爱

后续的每个参数分隔用空白

每个参数形式如 标签:(参数类型)参数名

其实只要把函数名看作是第一个参数标签

你就能领悟其中的奥妙并在调用时喜爱

成员方法太多我才懒得区分亲疏远近

它们一律都是公之于众要好好的干活

谁若不服胆敢出头犯上

就踢出头文件打入冷宫永世不能露面试试看

所有的成员方法都是虚函数

改则重载,不改就继承

不用任何标记请放心大胆随便使用

对象的类,在继承层次上考虑才显得重要

所有的类最终都继承于NSObject

因为它给你创建自己生命的方法

不继承于NSObject的只能是接口protocol

它没有成员变量只有方法

它只有声明不用实现

这点和java很相似

当然类还有一些绝活可以让你开开眼

可以动态的扩充一个类 而不总是用继承

@interface CClassA(Category)|@end

@implementation CClassA (Category)|@end

源代码外包含该 类的头文件

就可以使用该Category中的方法

也可以动态的替换一个类

但是只限于用继承类来替换基类功能

[CInheritClass poseAsClass: [CBaseClass class]];

声明之后用基类创建的对象实际上行为都是继承类

所以一个类的完整声明如下:

@interface CClassA(Category): CBaseClass

类别,基类,接口一一具全

加上静态 虚函数

所有特性和C++均可对应

再加上所独有的特性

这一特性编译类语言很少有

设计得当完全可以实现动态调用dll切换功能

类的定义和使用,也有点怪

想想看一个对象的生命周期,该是如何办

创建很是别扭

这样就定义了一个类对象,

CClassName* pA = [[CClassName alloc] init];

能且只能返回对象指针

释放分为两种

自动释放声明后 [pA autorelease]; 以后可以不管

否则就必须配对 [pA release];

注意类的构造函数init可以捕获

但是析构函数却没有这点很让人意外

使用类也有多种情况

调用成员方法用中括号 int nRtn = [pA method:param1]; 而静态成员方法不需要对象 int nRtn = [CClassName method]; 调用成员变量还是C格式 pA->m_nCount = 1;

所有的类,都可以对应一个id类型

用来引用一个对象 id cur = sq;

或者用来引用一个对象指定的接口 id cur = sq; 然后就可以调用该对象的方法和指定接口方法

C没有类

这让人很疲惫

对象的说法很时髦

不就是继承封装组合人人会

右走是C++,这个大众都熟悉它

左走就是objective-c,躲在僻静僻静的麦金塔

本是同根生的C

如何高举面向对象的大旗

求同存异标新立异且听一一细分清

对象的C

是不同的C

类的处理与众不同重点要区分

不重复是我的口头禅

任何时候我只说一次告诉你我的地盘

[@begincommand] | @end就是我的指示

@interface classname 声明类

@implementation classname 实现类

@protocol interfacename 声明接口

就是这么简单,你的一定要明白

我先声明对成员变量和方法的关系有远近

成员变量大大括在我的怀

关系远近 public / protected / private 来区分

若不声明全默默受着保护

静态成员变量请不要放在此

成员方法我不太爱

前面拴着绳子置于类的变量列表外

减号就是普通函数

加号就是静态函数莫怪

函数的声明有点怪

我要一眼叫出名,包括函数名和参数名

其余的类型括起来,我有空再来慢慢看

函数名和参数名之间用:分隔开

多个参数的函数那就是更怪

逗号其实不是我的爱

后续的每个参数分隔用空白

每个参数形式如 标签:(参数类型)参数名

其实只要把函数名看作是第一个参数标签

你就能领悟其中的奥妙并在调用时喜爱

成员方法太多我才懒得区分亲疏远近

它们一律都是公之于众要好好的干活

谁若不服胆敢出头犯上

就踢出头文件打入冷宫永世不能露面试试看

所有的成员方法都是虚函数

改则重载,不改就继承

不用任何标记请放心大胆随便使用

对象的类,在继承层次上考虑才显得重要

所有的类最终都继承于NSObject

因为它给你创建自己生命的方法

不继承于NSObject的只能是接口protocol

它没有成员变量只有方法

它只有声明不用实现

这点和java很相似

当然类还有一些绝活可以让你开开眼

可以动态的扩充一个类 而不总是用继承

@interface CClassA(Category)|@end

@implementation CClassA (Category)|@end

源代码外包含该 类的头文件

就可以使用该Category中的方法

也可以动态的替换一个类

但是只限于用继承类来替换基类功能

[CInheritClass poseAsClass: [CBaseClass class]];

声明之后用基类创建的对象实际上行为都是继承类

所以一个类的完整声明如下:

@interface CClassA(Category): CBaseClass

类别,基类,接口一一具全

加上静态 虚函数

所有特性和C++均可对应

再加上所独有的特性

这一特性编译类语言很少有

设计得当完全可以实现动态调用dll切换功能

类的定义和使用,也有点怪

想想看一个对象的生命周期,该是如何办

创建很是别扭

这样就定义了一个类对象,

CClassName* pA = [[CClassName alloc] init];

能且只能返回对象指针

释放分为两种

自动释放声明后 [pA autorelease]; 以后可以不管

否则就必须配对 [pA release];

注意类的构造函数init可以捕获

但是析构函数却没有这点很让人意外

使用类也有多种情况

调用成员方法用中括号 int nRtn = [pA method:param1]; 而静态成员方法不需要对象 int nRtn = [CClassName method]; 调用成员变量还是C格式 pA->m_nCount = 1;

所有的类,都可以对应一个id类型

用来引用一个对象 id cur = sq;

或者用来引用一个对象指定的接口 id cur = sq; 然后就可以调用该对象的方法和指定接口方法


相关内容

  • 基于LLVM的编译原理简明教程 (1)
  • 基于LLVM的编译原理简明教程 (1) - 写编译器越来越容易了 字数2507 阅读192 评论0 喜欢3 收藏文章 分享 基于LLVM的编译原理简明教程 (1) - 写编译器越来越容易了 进入21世纪,新的编程语言如雨后春笋一样不停地冒出来.需求当然是重要的驱动力量,但是在其中起了重要作用的就是工 ...

  • 世界编程语言排行榜分析
  • 世界编程语言排行榜分析 TIOBE世界编程语言排行榜展现了编程语言的流行趋势.每个月,都有最新的数据被更新.这份排行榜的数据取样来源于互联网上富有经验的程序员.商 业应用.著名的搜索引擎(诸如谷歌. MSN .雅虎)的关键字排名. Alexa 上的排名等.请注意这个排行榜只是反映了某个编程语言的热门 ...

  • 就业面试题
  • 1. 简述OC 中内存管理机制.与retain 配对使用的方法是dealloc 还是release , 为什么?需要与alloc 配对使用的方法是dealloc 还是release ,为什么?readwrite ,readonly ,assign ,retain ,copy ,nonatomic . ...

  • 苹果实训报告
  • 苏州市职业大学 实习(实训)报告 名称 UDecide 常用随机选择器 2013年1月7日至 院班姓 系级名 2013年1月计算机工程系12日共一周 系主任李金祥叶良教研室主任指导教师 目录 目录.................................................... ...

  • 诗词入门基础:诗的含蓄与夸张(下) - 冷月无声的日志 - 网易博客
  • 诗词入门基础:诗的含蓄与夸张(下) 再启童蒙 2011-02-22 09:31:30 阅读16 评论0   字号:大中小 订阅 诗 词 入 门 基 础 ',1)"> 诗的含蓄与夸张(下) 杜牧的诗在含蓄蕴藉方面也有很高的成就.诗评家把他和李商隐,并称为晚唐"李杜" ...

  • 架子鼓入门
  • 前言 架子鼓做为流行乐队中的一件主要乐器,以其振奋人心的音色及演奏者舞动鼓锤时激情薄洒的姿态,深受人们的善爱.为了给学习架子鼓的同学提供一些帮助,我编写了这本<架子鼓基础教程>一书. 这本教材带给学生们的,是我近年来学习和演奏架子鼓时积累的知识.经验及心得.它不光是基本功和技巧上的纯粹训 ...

  • 学习吉他的入门乐理知识
  • 吉他入门乐理知识 心若无尘,一弦一世界,一琴一天堂 基本的乐理对于刚开始接触吉他的初学者非常重要,如果不懂乐理就不能更 分清这些音乐单元,对于学习乐理是非常有好处的.一首完整的曲子,由很多不同时值的音符组成不同的小节,再由这些小节组成不同的乐句,由不同的乐句组成不同的段落,由段落组成完整的乐曲. 1 ...

  • 如何做好一名钢琴老师
  • 在目前较流行的儿童启蒙教材中大致可分为三种五线谱入门型,即高音谱表入门法,中央c入门法,多音入门法.传统的启蒙教材<拜尔钢琴基本教程>用的就是高音谱表入门法,目前在国内广泛应用的<汤普森浅易钢琴教程>1-5册用的是中央c入门法. 李斐岚,董钢锐编著的<幼儿钢琴教程> ...

  • 七年级上语文古文练习
  • 4. 古代诗歌四首 一.常识填空 <观沧海>的作者是 ,字 , 末 年 家. 家. .他的诗以 见称.<观沧海>是一首 诗. 二.按要求写出诗句 1.点出诗人登临碣石山的目的的诗句是: , . 2.虚写诗人想像之景的句子 是: 3.最能体现作者博大胸怀的诗句 是: 4.勾勒出 ...