Object-c基本语法结构
1.第一个object-c程序:
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
// insert code here...
NSLog(@"Hello, World!");
NSLog(@"hello world");
}
return 0;
}
2.类、对象和方法
#import <Foundation/Foundation.h>
//类 NewClassName 声明
@interface Fraction: NSObject
-(void) print;
-(void) setNumberator:(int) n;
-(void) setDenominator:(int) d;
@end
//类的定义实现
@implementation Fraction{
int numberator;
int denominator;
}
-(void) print{
NSLog(@"%i/%i",numberator,denominator);
}
-(void) setNumberator:(int)n{
numberator = n;
}
-(void) setDenominator:(int)d{
denominator = d;
}
@end
int main(int argc, const char * argv[]) {
@autoreleasepool {
//类的使用
Fraction *myFraction;
myFraction = [Fraction alloc]; //获得一个类的新实例。创建一个对象,并将对象的引用赋给myFraction(存的是地址)
myFraction = [myFraction init]; //对这个新的类实例变量等进行初始化
//以上两句通常一起出现,可以简便地写成: myFraction = [[Fraction alloc] init];
//方法调用
[myFraction setNumberator: 1];
[myFraction setDenominator: 3];
[myFraction print];
//最后,系统会自动调用ARC机制来释放对象内存,所以不需要再手工释放。
}
return 0;
}
(1)在@interface中声明类,指明父类与其自身有哪些方法;
@interface NewClassName: ParentClassName
propertyAndMethodDeclarations;
@end
(2)在@implementation中实现类,实现声明的方法,同时定义都有哪些属性;
#implementation NewClassName
{
memberDeclarations;
} //定义属性
methodDefinitions; //实现声明的方法
@end
(3)program 部分
实现类实例的声明,调用等。
说明:对于object-c的定义,其中变量均相当于是java中的private类型,如果想要直接访问改变量,可以通过定义一个同名函数的方法来实现:
//声明
-(int) numerator;
//实现
-(int) numerator{
return numerator;
}
//调用:
[myFraction numerator];