Objective-C学习笔记--@interface

Objective-C中,调用方法被称为发送消息,通知对象执行某种操作

先看一段类声明(接口):

@interface Circle : NSObject

{

     ShapeColor fillColor;

    ShapeRect bounds;

}

 -(void) draw; //1.

 -(void) setFillColor: (ShapeColor) fillColor;  //2.

 -(void) setBounds: (ShapeRect) bounds;  //3.

@end

方法声明

第1个,前面的短线表明这是Objective-C方法的声明,这是一种区分函数原型与方法声明的方式,函数原型中没有先行短线。短信后面是方法的返回类型,位于圆括号中(Objective-C中没有public和private的概念,你可以认为全是public,它只有类方法和实例方法,+表示是类方法,类方法可以直接调用,而不用插U那个键这个类的实例,-表示实例方法,需要创建这个类的实例对象才可以调用)

类对象包含了指向超类的指针、类名和指向类方法列表的指针,类对象还包含一个long型数据,为新创建的类实例对象指定大小(以字节为单位)

如果使用了+,就是把这个方法定义为类方法,这个方法属于类对象并且通常用于插u功能键新的实例,我们称这种用来插u那个键新对象的类方法为工厂方法

类对象可以用来访问全局数据,APPKit中的NSColor类有一些以不同颜色命名的类方法,如redColor和blueColor,要用蓝色绘图,可以像这样编写代码:

NSColor * haveTheBlues =[NSColor blueColor];

用减号:这些方法将会在某个对象实例中运行,比如获取i个Circle的颜色或者一个Tire的气压

用加号:实现常规功能,比如创建一个实例对象或者访问一些全局类数据

Objective-C可以返回与C函数相同的类型:标准类型(整型、浮点型和字符型)、指针、对象引用和结构

第2个,方法的名称是setFillColor: ,结尾处的冒号是名称的一部分,它告诉编译器和编程人员后面会出现参数。参数是某个ShapeColor值,fillColor是参数名

注意:方法的声明在括号后面,@end之前 。{}

注意冒号

冒号是方法名称非常重要的组成部分,如果方法使用参数,则需要冒号,否则不需要冒号

中缀符

Objective-C中有一种名为中缀符(infix notation)的语法技术。方法的名称及其参数都是和在一起的。例如你可以这样调用带一个参数的方法:[circle setFileColor: kRedColor];

带两个参数的方法调用如下:

[textThing setStringValue: @"hello there"  Color:kBuleColor];//textThing 表示什么意思?

setStringValue:和setFillcolor:实际上是参数的名称(实际是方法名称的一部分)

@“hello there”和kBuleColor是被传递的参数

这种语法和C不同,在C中调用函数时,是把所有的参数都放在函数名之后,如下所示

setTextThingValueColor(textThind,@"hello there",kBuleColor);

中缀符使代码可读性更强,更容易理解参数的用图

原文地址:https://www.cnblogs.com/cc-Cheng/p/3315123.html