码迷,mamicode.com
首页 > 其他好文 > 详细

关情纸尾-----OC面对对象的核心语法

时间:2015-04-11 11:38:01      阅读:134      评论:0      收藏:0      [点我收藏+]

标签:

有点愧疚,这几个月荒废了,也浪费了很多时间。

接下来是我看的关于核心语法的一些笔记,可能不全也可能有错误,希望大家可以指出来。

 

 

 

一、点语法

点语法的本质是调用。

例如:

Person *p = [Person new];

//赋值

p.age = 10; // 等价于[P setAge:10];调用setter

//取值

int a = p.age;// 等价于[P age];调用getter

二、成员变量的作用域

@public  任何地方都能直接访问

@private 只能在当前类的对象方法中直接访问

@protect 当前类和子类的对象方法。虽然被保护,但是在内存中子类拥有父类中的方法

 

三、@property和@synthesiz

  1.自动生成 _age.

  2.自动生成_age的setter和getter声明

@property int age;//写上类型和名称

/*等价于

-(void)setAge:(int)age;

-(int)age;*/

//表示字符串

@property NSString*name;

 

   生成setter 和getter方法的实现

@synthesize age = _age;

还可以连着写

@synthesize age =_age,name = _name;

 

注:

一般情况下省略@synthesize,只写@property

并且会自动生成setter和getter的声明和实现。

 

四、万能指针 id

id 是一种指针,一般形式为

id = NSObject*

id d = [Person new]

五、构造方法

属于对象方法,减号开头。

new  完整的创建一个可用的对象

① 分配存储空间 ② 初始化

不再使用new创建对象。改为以下方式

1.调用+alloc 分配存储空间

2.调用-init进行初始化

Person *p = [[Person alloc] init];

六、重写构造方法

目的:为了让对象创建出来,成员变量就会有一些固定的值

*****重写-init 方法*****

-(id)init    //id是为了使任何对象都可以调用NSObject

{

//一定要调用回super 的init 方法,初始化父类中声明的成员变量和其他属性

if (self = [super init]

//如果对象初始化成功,才能进行下面的初始化

{_age = 10;//所有成员变量初始化值都是10

}

return self;//返回一个已经初始化完毕的对象

}

七、自定义构造方法

自定义构造方法:

1.一定是对象方法,一定以减号开头

2.返回值一定是id类型

3.方法名以initWith开头

例如

@interface Person:NSObject

@property NSString *name;

@property int *age;

-(id) initWithName:(NSString*)name andAge:(int)age;

@implementation Person

-(id)initWithName:(NSString*)name andAge:(int)age;

{if(self=[super init])

{_name=name;

_age=age;

}

return self;

}

int main()

{Person *p = [[Person alloc] initWithName:@"rose"andAge:30]

return 0;

}

八、类的本质

//利用Person这个类创建Person类型的对象

Person *p = [[Person alloc] init];

//获取内存中的类对象,即Person这个类对象

Class c = [p class];

也可以写成Class c = [Person class];

注:

类本身也是一个对象,是个class类型的对象,简称类对象,

利用class创建Person类对象

利用person创建Person类型的对象

关情纸尾-----OC面对对象的核心语法

标签:

原文地址:http://www.cnblogs.com/Lorraine1/p/4417216.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!