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

【Obj-C】学习杂记-2

时间:2014-12-23 01:27:22      阅读:203      评论:0      收藏:0      [点我收藏+]

标签:

2014/12/22 夜

今天先看了C的面向对象,再继续看Obj-C明白了新的OOP知识。

用@interface创建类,继承自NSObject,也成为接口/API

@interface Circle:NSObject

{

@private  //私有,只能在这个类里面调用,对应的有可以让继承的类用的@protected和全局都能用的@public

ShapeColor fillcolor;  //fillcolor是一种类型叫ShapeColor的型,它是实例变量跟bounds一样

ShapeRect bounds;

}

-(void)setFillColor:(ShapeColor) fillcolor;  //声明一个方法,不返回值,需要ShapeColor类型的参数,参数名叫fillcolor

-(void)setBounds:(ShapeRect) bounds;

 

@end

 

用@implementation定义实现,是编译器指令

@implementation Circle  //此处没有分号

-(void)setFillColor:(ShapeColor) c

{

fillcolor=c;  //此时参数名为c,不命名成实例变量的名称,不然会覆盖了fillcolor

}

-(void)setBounds:(ShapeRect) b

{

bounds=b;

}

有个问题,书上既然说@implementation里面可以定义@interface里面没有的声明过的方法,这样定义了有什么用?

 

创建一个新的对象,需要给他分配空间,给它传递new的消息

eg:  

id shapes[3];

ShapeRect rect0={0,0,30,30};//定义一个rect的Shaperect类型并给值

shape[0]=[Circle new];//实例化对象

[shape[0] setBounds:rect0];

[shape[0] setFillColor:kRedColor];

 

数据第一,函数第二是面向对象的精髓。

 

【Obj-C】学习杂记-2

标签:

原文地址:http://www.cnblogs.com/Dack/p/4179293.html

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