最近自学ios,ios的支持语言是Objective-c,所以要学习ios就需要先学习Objective-c语言。当掌握了Objective-c的基础知识之后,我们就可以入手学习iOS开发做出一些自己的应用。
我现在还是一名java程序员所以我就按照java的理解方式去理解Objective-c。最初先了解他的语法。下面 这段代码是我在学习过程中跟java对比的理解。都是一些最最基础的语法,随后会逐步深入。
代码段一:类的定义,类的定义放置在后缀为“.h”的文件中在java中是没有这一步的,这个跟c++很像。
//导入代码文件,相当于java中的导包
#import <Foundation/Foundation.h>
@interface Song : NSObject
{
//声明属性,素性的声明需要放在花括号中
NSString * name;
NSString * artist;
int ID;
}
//相当于定义get,set方法
@property int ID;
//重初始化方法,相当于java中的构造函数
//在重写初始化方法是也可以随意命名方法名,返回值为id类型就可以
-(id)init;
//带参数的初始化方法
-(id)init:(NSString *)name artist:(NSString *)artist;
//声明实例方法,get方法,带返回值的返回值类型是NSString相当于java的String类型
-(NSString *)name;
//声明没有返回值的方法,set方法
-(void)setName:(NSString *)newName;
-(NSString *)artist;
-(void)setArtist : (NSString *)newArtist;
//重写父类中的方法
-(NSString *)description;
//声明静态方法
+(void) getString;
@end
代码段二:类的实现,类的实现代码放置在后缀为“.m”的文件中。
#import "Song.h"
@implementation Song
-(id)init
{
return self;
}
- (id)init:(NSString *)name artist:(NSString *)artist
{
self = [super init];
if (self) {
self.name = name;
self.artist = artist;
}
return self;
}
//相当于实现get,set方法
@synthesize ID;/*
/*
*实现实例方法
*/
-(NSString *)name //
{
return name;
}
-(void)setName:(NSString *)newName
{
name = newName;
}
-(NSString *)artist
{
return artist;
}
-(void)setArtist:(NSString *)newArtist
{
artist = newArtist;
}
-(NSString *)description
{
//用self关键字使用"."方式调用本身的方法,self代表本身,相当于java中的this关键字
return self.name;
//用self关键字使用obj_c本身特性调用本身的方法
//return [self name];
}
/*
*实现静态方法
*/
+(void)getString
{
NSLog(@"name:chh");
}
@end
来源:oschina
链接:https://my.oschina.net/u/264274/blog/99289