object-c类与对象

面向对象特征:封装、继承、多态

访问控制符;@private @package @protected @public

类与对象,类是某一批对象的抽象。

1.定义类的步骤

 接口部分:定义该类包含的成员变量与方法

 实现部分:为该类的方法提供实现

@interface MyClass:NSObject

{

int _count;

int _data;

NSString* _name;

}

-(id)initWithString:(NSString*)aName;

+(MyClass)createMyclassWithString:(NSString*)aName;

@end

2.方法签名关键字

-(void)ins:(id)anObject atIndex:(NSUInteger)index;

void:返回值类型

id+NSUInteger:形参类型

ins+atIndex:方法签名关键字

anobject+index:形参数据

备注:object-c的方法签名冒号具有特殊意义,比如foo方法和foo:方法是不同的,前者不带冒号表示其实一个不带形参声明的方法,后者带一个冒号,表示他是带一个形参声明的方法,而foo:bar:表示的有事另外一种方法,表明它是带有两个参数的方法,其中第二个形参的标签是bar。、

3.类的实例化

@implementation MyClass{

int _count;

int _data;

NSString* _name;

}

-(id)initWithString:(NSString*)aName{

//方法体

}

+(MyClass)createMyclassWithString:(NSString*)aName{

//方法体

}

@end

类实现部分的类名必须与类接口部分的类名相同,用以表示这是同一个类的接口部分和实现部分。

类实现部分也可以在类名后使用“:父类”来标示继承了某个父类,但一般没有必要

类实现部分也可以声明自己的成员变量,但是这些成员变量只能在当前类内访问,因此在类实现部分声明成员变量相当于定义隐藏的成员变量。

类实现部分必须为类声明部分的每个方法提供方法定义,方法定义由方法签名和方法体组成,实现部分除了实现类接口部分定义的方法外也可以提供额外的方法定义,这些没有在接口部分定义,只是在实现部分定义的方法,将只能在类实现部分使用,方法体中多条可执行语句之间有严格的执行顺序。

#import "FKperson.h"

@implementation FKperson

{

//定义一个只能在实现部分使用的成员变量

int _testarray;

}

-(void)setName:(NSString*) n andAge:(int) a{

_name=n;

_age=a;

}

-(void) say:(NSString*) content{

NSLog(@"%@",content)

}

- (NSString) info{

}

-(void) test{

}

+(void)foo{

}

对象

1.对象的产生于使用

定义变量  创建对象 调用类方法

FKperson* person;

person=[[FKperson alloc] init];

person say:@"hello world";

person setName:@"jack" andAge:21;

NSString* info=[person info];

[FKperson foo];

+函数为类方法,调用者为类;-函数为对象方法,调用者为对象。


你可能感兴趣的:(object-c类与对象)