oc类的创建与使用与数组的四种遍历示例

    移动端的开发确实很火,网上大牛的开始也很早,很感觉自己入门太晚,但是艺多不压身,什么时候都不晚,在此记录下自己的学习笔记,希望对以后的入门新手有用,同时也是对自己的一种锻炼,直接上代码,有注释便于理解。

Student.h 声明文件内容如下:

#import <Foundation/Foundation.h>

//创建一个类
@interface Student : NSObject   //@interface --> 等于java中的class
//成员变量
@property int age;  //编译器会自动补出其set和get方法
@property NSString * number;
//声明方法
-(void)setAge:(int)_age andNumber:(NSString *)_number; //函数前面的减号-  ----> 表示对象方法,函数前面的加号+  ---> 表示类方法,等于java的static方法
-(void) show;
@end  //结束标志 必须写

Student.m实现文件如下:

#import "Student.h"

@implementation Student
@synthesize age,number; //编译器会自动生成其set和get方法

//方法实现
-(void)setAge:(int)_age andNumber:(NSString *)_number
{
    age=_age;
    number=_number;
}

-(void)show{
    
    NSLog(@"%d and %@",age,number);
}

@end

main.m实现代码代码如下:

#import "Student.h"

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        
        //OC创建对象分2步,先调用静态无参函数alloc申请内存,在调用静态无参函数init初始化
        //1. Student *stu = [Student alloc];//仅仅为对象分陪内存空间
        //2. stu = [stu init];//真正创建对象
        //以上2步一般简写为:
        Student   *stu=[[Student alloc]init];
        //设置(方法)
        [stu setAge:26 andNumber:@"13243181772"];
        //显示方法
        [stu show];
        
        
        
//   Objective-C的数组比C++,Java的数组强大在于,NSArray保存的对象可以是不同的对象。但只能保存对象,int ,char,double等基本数据类型不能直接保存,需要通过转换成对象才能加入数组;NSArray对应的是java的List,不同的是其元素不能更改,不过其派生类NSMutableArray可以更改,遍历的方式跟java的List基本一样
        
        
        //可变数组的定义与简单操作
        
        /*
        
        NSMutableArray  *nmarray=[NSMutableArray arrayWithObjects:stu,@"1",@"2", nil];
        [nmarray insertObject:@"4" atIndex:3];
        [nmarray addObject:[NSNumber numberWithInt:88]];  //默认是添加在末尾
        */
        
        
        
        NSArray *array=[NSArray arrayWithObjects:stu,@"1",@"2", nil];
        
        // 1.for循环
        
        int count=(int)array.count;  //数组长度
        for (int i=0; i<count; i++) {
            NSLog(@"%i=%@",i,[array objectAtIndex:i]);
        }
        
        
        //2.增强for循环
        
//        for (id obj in array) {
//            NSLog(@"%@",obj);
//        }
        
    //3.迭代器
        
//        NSEnumerator *enumerator=[array objectEnumerator];
//        id obj=nil;
//        while (obj=[enumerator nextObject]) {
//            NSLog(@"%@",obj);
//        }
        
    //4.Block块遍历
        
//        [array enumerateObjectsUsingBlock:^(id   obj, NSUInteger index, BOOL *stop) {
//            
//            NSLog(@"%i-%@",(int)index,obj);
//            //若终止循环
//               *stop=YES;  //如果没有注释的话,只会循环一次
//        }];

    }
    return 0;
}

打印结果如下所示:
2016-03-29 11:30:12.879 testcase[963:61200] 26 and 13243181772
2016-03-29 11:30:12.880 testcase[963:61200] 0=<Student: 0x1005001a0>
2016-03-29 11:30:12.880 testcase[963:61200] 1=1
2016-03-29 11:30:12.880 testcase[963:61200] 2=2
Program ended with exit code: 0


补充:在上面的示例代码中可以定义Student的构造函数

声明如下:

-(Student*)initWithAgeAndNumber:(int)age setNumber:(NSString*) number;
实现方法如下:

//构造方法实现
-(Student*)initWithAgeAndNumber:(int)age setNumber:(NSString *)number{
    self=[super init];
    if(self){
        [self setAge:age andNumber:number];  //调用了一个多参数的函数
    }
    
    return self;
    
}
调用如下:

   Student *stu=[[Student alloc]initWithAgeAndNumber:26 setNumber:@"13243181772"];






如有不妥和理解不到位之处,欢迎批评指出!共同学习,一起进步!




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值