在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
一,类的定义 @interface Circle : NSObject //类的定义放在.h文件中 { ShapeColor fillColor; ShapeRect bounds; //数据成员 } //void类型方法,带有一个ShapeColor类型形参 - (void) setFillColor : (ShapeColor) fillColor;
//void类型方法,带有一个ShapeRect类型形参和一个int型形参,setBounds:和atindex: - (void) setBounds : (ShapeRect) bounds atIndex : (int) index;
//void类型方法,不带参数. - (void) draw; @end //完成声明
二,类的实现部分(代码存放于.m文件中[相当于c++中的.cpp文件]) @implementation Circle - (void) setFillColor : (ShapeColor) c { fillColor = c ; } - (void) setBounds : (ShapeRect) b atIndex : (int) index; { bounds = b ; index++; } - (void) draw { NSLog(@"drawing a circle at (%d,%d,%d,%d) in %@"), bounds.x , bounds.y , bounds.width , bounds.height, colorName(fillColor)); } //colorName是一个返回说明颜色的NSString类型字符串的方法 @end //没有分号
三,调用带参方法(使用前文所建类的方法) ① 例:一个带一个参数的方法( object - c ): [ circle setFillColor : kRedColor ] 一个带一个参数的方法(c++): circle.setFillColor(kRedColor); ② 例:一个带两个参数的方法( object - c ): [ circle setBounds : bound atIndex : 1]; 一个带两个参数的方法(c++): circle.setBounds(bound , 1);
四,new语句 id shape[3] ; shape[0] = [Circle new] // [ 类 new ] 用c++表示: Circle (*shape)[3]; shape[0] = new Circle();
五,类的继承 //Circle类从Shape类继承所有变量以及方法 @interface Circle : Shape @end /**假设Shape类中含有空方法 - (void) draw{} 则可在Circle的实现中对draw方法进行重构 **/ @implementation Circle - (void) draw { NSLog(@"........");} @end
六,复合 -- 对象间的组合,形成新的类(与继承比较) 继承 --- "is a", 具有"是一个"关系 ,"X是一个Y",使用继承. 复合 --- "has a",具有"有一个"关系,"X有一个Y",使用复合.
七,@class 在.h文件中定义类时使用@class声明一个未包.h头文件的类,可使编译通过,并正常使用.当然要在主程序中把需要的头文件包括完整. 这个操作相当于告诉编译器:"相信我,你以后会知道这个类是怎样的."
|
请发表评论