黑马程序员---Objective-C学习笔记之一
来源:互联网 发布:橄榄油哪个牌子好 知乎 编辑:程序博客网 时间:2024/05/18 11:03
基础语法
BOOL本质是char类型的别名,1为true并被定义为YES,0为false被定义为NO。
OC中增加_Complex用来处理复数,增加_Imaginary处理抽象数字。
#import类似于C/C++中#include,用来防止头文件重复包含。
但是,使用include要注意重复引用的问题:
class A,class B都引用了class C,class D若引用class A与class B,就会报重复引用的错误,#import则没有这个问题。
OC提供一个新的打印输出函数NSLog,类似于C语言中printf,支持转义字符,不写\n也可自动换行。
NSLog中使用的格式控制符总结如下:
面向对象
一个类包括以下两部分:
@interface部分 //声明,描述类、类的数据成分以及类的方法
@implementation部分 //实现,实现这些方法的实际代码
格式类似于:
@interface NewClassName: ParentClassName
{
//成员声明
}
//方法声明
@end
@implementation NewClassName
//方法定义
@end
函数开头的(-)号或者(+)号表示:
(-)该方法是实例方法(对类的特定实例执行一些操作);
(+)是类方法(即对类本身执行某些操作的方法,例如创建类的新实例)
示例:
//-------- @interface section--------@interface Fraction: NSObject{ intnumberator; intdenominator;} - (void) print;- (void) setNumberator: (int) n;- (void) setDenominator: (int) d;- (void) setTo: (int) n over: (int) d; @end //---------implementation section------@implementation Fraction-(void) print{ NSLog(@"%i/%i",numberator, denominator);} - (void) setNumberator: (int) n{ numberator= n;} - (void) setDenominator: (int) d{ denominator= d;} - (void) setTo: (int) n over: (int) d{ numerator= n; denominator= d;}@end int main (int argc, const char *argv[]){ NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; //在此处输入Objective-C代码 Fraction *aFraction = [[Fraction alloc] init]; [aFraction setTo: 1 over: 2]; [aFraction print]; [pool drain]; return 0;}
函数具有多个参数的方法:
-/+ (return type) function_name :(parameter type) parameter1 otherParameter : (parameter_type) parameter2;
如果只有一个参数,在: 后面声明参数的类型和名称;如果有多个参数的话,每个参数前面都要有一个 : , 然后接着是参数类型和参数名称。可是大家可能还是觉得很奇怪。比如上面这个例子中,otherParameter 这个是什么意思,在objective c 中,对于有多个参数的函数,可以理解为将函数的名称拆
成了几个部分,每个部分都是对紧接着的参数的一个解释。
如在C++中:
void initializeRectangle(int x1, int y1,int x2, int y2);
但并不知道这些参数都是什么意思;但在objective c 中,可以这样声明:
void initializeRectange: (int)x1 LeftUpY:(int)y1 RightBottomX: (int)x2
RightBottomY:(int)y2;
方法的调用:
[ 类或实例的名称 方法(消息)];
类似于C++中对象.方法或者 对象->方法
对象的获取:
Fraction*aFraction = [[Fraction alloc] init];或者
Fraction*aFraction = [Fraction new];
合成存取器的方法:
在接口部分使用@property表示属性
在实现部分使用@synthesize指令
从Objective-C 2.0开始,可使用.运算符访问属性及赋值,示例如下:
Instance.property= value <==> [instance setProperty: value]
OC中所有的对象都是指针。
实例变量的初始化值默认为0
实例变量作用域的指令:
@protected 实例变量可被该类及任何子类中定义的方法直接访问(默认的情况)。
@private 实例变量可被定义在该类的方法直接访问,不能被子类定义的方法直接访问。
@public 实例变量可被该类中定义的方法直接访问,也可被其他类或模块中定义的方法访问。使得其他方法或函数可以通过(->)来访问实例变量(不推荐用)。
@package 对于64 位图像,可以在实现该类的图像的任何地方访问这个实例变量。
self/super关键字
self/super用来指名对象是当前方法的接受者,格式:[self/super 方法名(消息)]
self会从自身类寻找处理该消息的方法,super会从父类中寻找处理该消息的方法,如果找不到,就会一直想上找,都没找到就会报错。
- 黑马程序员---Objective-C学习笔记之一
- 黑马程序员---Objective-C Foudation框架学习笔记之一
- 黑马程序员---C语言学习笔记之一
- Objective-C学习笔记之一
- 【黑马程序员】Objective-C语言学习笔记之小知识点
- 【黑马程序员】Objective-C语言学习笔记之类(二)
- 黑马程序员---Objective-C学习笔记之二
- 黑马程序员---Objective-C 学习笔记之三
- 黑马程序员---Objective-C Foundation框架学习笔记之二
- 黑马程序员 — Objective-C学习笔记(二):继承
- 黑马程序员——Objective-C学习笔记(八): 属性
- 黑马程序员-IOS学习笔记(一)Objective-C概述
- 黑马程序员----Objective-C学习笔记之动态类型检测
- 黑马程序员----Objective-C学习笔记之构造方法
- 黑马程序员----Objective-C学习笔记之内存管理
- 黑马程序员----Objective-C学习笔记之@property参数
- 黑马程序员----Objective-C学习笔记之autorelease基本使用
- 黑马程序员Objective-C笔记:类
- 虚拟键代码
- C++只能在堆上或只能在栈上创建累的对象
- hadoop1笔记
- Type获取类型基本信息示例
- FIFO和LRU计算缺页中断
- 黑马程序员---Objective-C学习笔记之一
- spring的ContextLoaderListener
- Hadoop小试之WordCount
- HDU 1241 Oil Deposits
- list initializing a vector demo
- Android按比例布局
- C编译器剖析_4.3 语义检查_语句statement
- java笔记(网络编程)
- 稍大的串