移动端的开发确实很火,网上大牛的开始也很早,很感觉自己入门太晚,但是艺多不压身,什么时候都不晚,在此记录下自己的学习笔记,希望对以后的入门新手有用,同时也是对自己的一种锻炼,直接上代码,有注释便于理解。
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"];
如有不妥和理解不到位之处,欢迎批评指出!共同学习,一起进步!