#import //可以防止文件的内容被重复拷贝
-frameworkFoundation
面向过程(Produce oriented):关注解决问题需要的步骤
面向对象(Object oriented):关注解决问题需要的对象。
(封装,继承,多态);
//函数的参数
#import <Foundation/Foundation.h>
@interface Calculate : NSObject
-(int)sumWithNum1:(int)num1 andNum2:(int)num2;
@end
@implementation Calculate
-(int)sumWithNum1:(int) a andNum2:(int) b{
return a+b;
}
@end
int main(){
Calculate *ca=[Calculate new];
int sum=[ca sumWithNum1:20 andNum2:30];
NSLog(@"%d",sum);
return 0;
}
//结构体枚举
typedef enum {
SexMan,
SexWoman
} Sex;
typedef struct {
int year;
int month;
int day;
} Date;
@interface Student : NSObject {
int _age;
Sex _sex;
Date _date;
}
- (void)setYear:(int)year andMonth:(int)month andDay:(int)day {
Date date={year,month,day};
_date=date;
}
类方法无法被对象调用。
对象中有一个isa指针,指向类。
//组合
@interface Score : NSObject{
int _cScore;
}
@interface Student : NSObject{
Score *_score;
//int _cScore;
}
//多态:父类指针指向子类对象
//父类类型变量 不能直接调用子类特有方法,(强转);
Person *p=[Student new]
Animal *a = [Dog new];
Dog *d=(Dog *)a;
[d run];