黑马程序员技术交流社区

标题: ios基础框架总结,必看,不看后悔终生 [打印本页]

作者: 黑马中的小绵羊    时间: 2015-8-16 21:20
标题: ios基础框架总结,必看,不看后悔终生
第一步:先创建类,类中有各个元素的属性
创建类的方法:@interface   类名(类名首字母大写,这是规范):NSobject
{
     @public
        此处写类的属性例如:in t a;


}
类方法的声明(其实就相当于类的声明)
@en d(记住千万不可忘记)
@implementation 类名
此处写类实现的方法(也就是函数实现的方法)
方法有多种:第一种:无参数无返回值类型   -(void) eat;
                        第二种:无参有返回值类型      -(int)eat:
                        第三种:有参无返回值类型     -(void)eat:(NSString*)foodName   addSum   :(int)num;
                       第四种:有参有返回值类型       -(int)eat:(NSString*)foodName   addSum   :(int)num;
                       第五种:对象作为参数类型      -(void)eat(Dog *)dog;
                       第六种    对象作为返回值类型
  @en d
int main(){
1创建类的对象:Dog *p=[Dog     new];
2对象调用无参方法:[p:方法名];
     对象调用有参方法:[p:方法名:传递参数 andnum   传递参数];
     调用对象作为参数的方法:[p1 eat:p2];
return 0;

下面附上经典案例:
设计一个”狗“类
1> 属性
* 颜色
* 速度(单位是m/s)
* 性别
* 体重(单位是kg)

2>行为
* 吃:每吃一次,体重增加0.5kg,输出吃完后的体重
* 吠(叫):输出所有的属性
* 跑:每吃一次,体重减少0.5kg,输出速度和跑完后的体重
* 比较颜色:跟别的狗比较颜色,如果一样,两个值做减法得零,返回NO(零值),不一样,
做减法得到非零值,返回YES(1)
* 比较速度:跟别的狗比较速度,返回速度差(自己的速度 - 其他狗的速度)



#import <Foundation/Foundation.h>
typedef enum {white,black,green}Color;
typedef enum {woman,nv}Sex;
@interface Dog:NSObject
{
    @public
   Color _color;
    float _speed;
    float _weight;
}
-(void)eat:(NSString*) foodName addNum:(int)num;
-(void)jiao;
-(void)run:(NSString*) foodName addNum:(int)num;
-(BOOL)compareColor:(Dog*) dog1;
-(int)compareSpeed:(Dog*)dog2;
@end;
@implementation Dog
-(void)eat:(NSString*) foodName addNum:(int)num{

    _weight=_weight+0.5*num;

}
-(void)jiao{
   
    NSLog(@"颜色:%u,速度:%f,体重:%f",_color,_speed,_weight);
}
-(void)run:(NSString*) foodName addNum:(int)num{
     _weight=_weight-0.2*num;
     NSLog(@"速度是:%f,体重是:%f",_speed,_weight);

}
-(BOOL)compareColor:(Dog*) dog1{
    if(_color==dog1->_color){
        return YES;
    }else{
   
        return NO;
    }

    return 0;
}
-(int)compareSpeed:(Dog*)dog2{

    return _speed-dog2->_speed;

}
@end

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        // insert code here...
        Dog *p1=[Dog new];
        p1->_weight=13;
        p1->_color=white;
        p1->_speed=9;
        [p1 eat:@"大米" addNum:5];
        [p1 run:@"麻辣汤" addNum:5];
        [p1 jiao];
        Dog *p2=[Dog new];
        p2->_speed=34;
        p2->_color=black;
        p2->_weight=34;
        BOOL isSameColor=[p2 compareColor:p1];
        NSLog(@"isSameColor=%d",isSameColor);
        int cha=[p2 compareSpeed:p1];
        NSLog(@"速度差是:%d",cha);
        
    }
    return 0;
}
[/code]         

return 0;
}



作者: 15132876050    时间: 2015-8-16 21:42
好的  收藏了
作者: 毛强    时间: 2015-8-17 21:41
谢谢,虽然学过这些
作者: xiaoguang    时间: 2015-8-17 21:52
很不错嘛.
作者: WPeng    时间: 2015-8-17 22:03
不错顶一下..
作者: MEIMEIAA    时间: 2015-8-17 22:08
加油加油,我也学到这边了,巩固一下
作者: GodLovenan    时间: 2015-8-18 17:05
这个是OC吗?
作者: GodLovenan    时间: 2015-8-18 17:06
这个是OC吗? 不是C语言的把?
作者: wdcew    时间: 2015-8-18 17:08
可以了咯!!!
作者: nulifendou    时间: 2015-8-18 21:05
来巩固下基础




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2