Chapter 3 Classes,Objects,and Methods

使用类或者对象的方法的语法是这样的:
[类名/对象名 方法名]
如果涉及到参数,则变成如下形式:
[类名/对象名 方法名:参数]
也可以用带有返回值的方法给变量赋值:


The @interface Section
这实际上就是类的声明式,它的一般形式如下所示:

在Objective-C中类名的第一个字母要求大写。
ChoosingNames
变量还可以存储对象,这是Objective-C的特性。
变量名可以是数字、字母、下划线的组合,不过第一位必须是字母或者下划线,变量名不可以是Objective-C保留字。
变量一般是以小写字母开头的,以后每遇到一个单词,该单词的首字母要大写,这一点像JAVA的命名规范。
下面是一个@interface的示例代码:

Objective-C也是有头文件的,并且也是以.h结尾的,这一点和C语言是完全一致的。
Class and Instance Method

注意!在方法声明的时候它前边有个-号,-代表这个方法是个实例对象的方法。与此相对应方法声明前的+代表,该方法是类方法。
所谓类方法就是对类本身进行操作的方法,比如产生一个类的实例。
而所谓实例方法就是对某实例对象本身的操作。
由此可见前者体现类的共性,后者体现类的个性。

上图中箭头所指之处是方法的返回值类型。
MethodArguments

红线所示部分是参数,括号中的是类型,n和d是形参,它们与方法名之间用冒号相连,整个声明以分号结尾。
当你想引用一个有参数的函数时可以在函数名后添加冒号,这个冒号表示这个函数带有参数。

如果没有参数就不需要冒号。
The @implementation Section
类成员的声明和定义形式如下:

类成员声明的形式如下所示:

可以看出这和C++没啥两样。
和实例方法一样,它们也属于某个实例对象,即每个实例对象都会有自己的实例成员。

方法的定义部分如上图所示。
此外Objective-C允许使用@synthesize指令自动产生方法,这个将在第七章讲到。
The program Section

书中说这是个对象,但是现在没清楚地说明,只是说留到以后再解释,我想这应该是个指针。
在Objective-C中对象空间的分配和初始化一般合在一起写,如下图所示:

也可以写成这样:

给函数传实参的形式是这样的:

调用成员方法的形式如下所示:

如果,在myFraction前面的*表示myFraction是个指针。
Accessing Instance Variable and Data Encapsulation
对象自己的方法可以直接访问自己的成员,但是类的方法无法访问,这一点和C++有很大的不同。
面向对象语言的惯用法中总有getters和setters,它们并不是语法,而是纯的惯用法。
它们都是成员方法,并且都是公有的,或者说外部能直接调用的接口。正是因为这一特性,它们能够操作私有成员,并且能返回私有成员。setters就是用来设置私有成员的,而getters则是用来获取私有成员的。setters带有参数没有返回值,而getters没有参数但有返回值。
这也是数据封装的一个原则,必须遵守。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 198,932评论 5 466
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,554评论 2 375
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 145,894评论 0 328
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,442评论 1 268
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,347评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 47,899评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,325评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,980评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,196评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,163评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,085评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,826评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,389评论 3 302
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,501评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,753评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,171评论 2 344
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,616评论 2 339

推荐阅读更多精彩内容