博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Objective-C学习笔记--@interface
阅读量:6679 次
发布时间:2019-06-25

本文共 1469 字,大约阅读时间需要 4 分钟。

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

你可能感兴趣的文章
Apache CXFjar包目录(转)
查看>>
NewCoder_13_E 通知小弟[缩点]
查看>>
Elasticsearch 空值过滤
查看>>
spring、springboot、springcloud的区别
查看>>
文字对齐之text-align总结
查看>>
css+js+html基础知识总结
查看>>
作为软件工程师,你必须知道的20个常识
查看>>
ActiveMQ入门实例
查看>>
POJ1797 Heavy Transportation
查看>>
MySQL查看和修改表的存储引擎
查看>>
py学习之道
查看>>
vs2015 + opencv3.4.0 + qt msvc2015_64-5.7.1 视屏显示
查看>>
关于——GCD
查看>>
2017-3-2 智慧吉首调研工作
查看>>
求解,一道嵌入式公司面试题
查看>>
easyUI的基础布局
查看>>
o(1)复杂度之双边滤波算法的原理、流程、实现及效果。
查看>>
Mongodb安装和基本命令
查看>>
python中requests模块使用
查看>>
git bash 常用命令 新手学习
查看>>