1、类的声明:声明对象的属性和行为
@interface 类名{
}
@end
方法的声明必须写在大括号外面,只要是OC对象的方法,必须以减号 - 开头。
例:@interface Car
:NSObject{
//类似于java OC里面所有类的父类为NSObject,所以需要从它继承。并且还需要#import<Foundation/Foundation.h>
@public
//@public可以让外部指针间接的访问对象内部的成员变量
int wheels;
//成员变量默认会初始化为 0
int speed;
}
- (void)run;
方法的声明必须写在大括号外面,只要是OC对象的方法,必须以减号 - 开头。
OC里面任何的数据类型都必须用小括号()括住
@end
3、 产生新对象的方法 : ClassA *a =[ [ClassA alloc] init ]
OC创建对象需要两个步骤:
(1)内存分配:为新对象动态分配一段内存地址
(2)初始化:为这段内存空间填上初始值
只有完成以上2步骤对象才能真正行驶功能。
p->wheels = 4;
5、 方法带有多个参数
2、类的实现:只做一件事情,就是实现所声明的方法!
@implementation 类名
@end
例:
@implementatiom Car
- (void)run
{
NSLog(@"跑跑跑!!!");
}
@end
3、 产生新对象的方法 : ClassA *a =[ [ClassA alloc] init ]
OC创建对象需要两个步骤:
(1)内存分配:为新对象动态分配一段内存地址
(2)初始化:为这段内存空间填上初始值
只有完成以上2步骤对象才能真正行驶功能。
4、操作对象只能使用
指针
!! 所以 Car *p =[ [Car alloc] init]; 就是定义了一个Car类型的指针变量P指向了新对象!!
p->wheels = 4;
p->speed = 250;
给所指向对象的属性赋值
[p run];
调用P的run方法,调用谁的方法 就意味着 方法里可以使用该对象的成员变量。
5、 方法带有多个参数
- (int)sum:(int)sum1 :(int)sum2;
参数之间一定要用 空格 隔开!!并且 一个冒号 对应一个 参数!!
简化设置器和访问器.注意两个关键字@property,@synthesize
#import <Foundation/Foundation.h> @interface Person : NSObject { int _myNumber; }// 普通的get和set
//-(int)myNumber;
//-(void)setMyNumber:(int)number; @property int myNumer; @end
@implementation Person // 普通的get和set实现//-(int)myNumber{
// return _myNumber; //}//-(void)setMyNumber:(int)number{
// _myNumber = number; //}@synthesize myNumer = _myNumber;@end
id: 万能指针 相当于NSObject *
重写init方法
-(id)init{
if(self = [super init]){
if(self = [super init]){
}
return self;
}
这里 init()的返回值 必须是 id!!!切记。