(1).#import <Foundation/Foundation.h>
1.类:分为类的声明和类的实现两个部分
//类的声明 @interface就是OC中声明一个类的关键字
struct Person {
//成员变量
char name[20];
int age;
int face;
};
//类的声明是一个固定的结构
//@interface 类型: 父类名(NSObject) {} @end
//声明一个YTPerson类,它有三个成员变量
@interface YTPerson : NSObject{
//NSObject是OC中所有类直接或者间接的父类,也是OC中所有类的根类
//这里用来声明成员变量(属性、字段)
char name[20];
int age;
int face;
}
//这里用来对处理数据的方法的封装(成员方法) 函数 == 方法 == 消息
//声明成员方法,成员方法的个数不定
//void func(void); 这个就是成员方法
//- 代表这个方法是对象方法,调用的时候需要使用类的对象来调用
//+ 代表这个方法是类方法
//OC中方法的返回值类型需要使用()括起来
//在没有参数时函数名后边的括号省略(必须省略)
- (void)func; //这个是OC最简单的方法(没有参数没有返回值)
@end
//类的实现
//@implementation 类实现的关键字
//固定格式 @implementation 类名 @end
@implementation YTPerson
//这儿写成员方法的实现
//OC方法的实现和C语言一样
-(void)func{
//函数体(函数功能的实现),在main函数里面写的东西,在这儿都可以实现
//在这儿可以使用类的成员变量
age = 20;
printf("%d\n",age);
}
@end
//主函数开始的地方
int main(int argc, const char * argv[]) {
@autoreleasepool {
struct Person person1; //创建一个结构体变量,person1在栈上
//OC中使用类创建一个对象,都是在堆上开辟空间来存储数据的
//在C语言中使用malloc函数在堆上开辟空间存储数据
char * p = malloc(400); //会在堆上开辟400个字节的内存空间,返回的这400字节的首地址存到指针变量p中
//[]是OC中用来调用函数的语法
//YTPerson 来调用alloc方法,是alloc可以在堆上开辟YTPerson这麽大的内存空间
//person2实质是指向对象(YTPerson这个类定义的变量)的指针,但是我们一般情况下说person2是一个对象
YTPerson * person2 = [YTPerson alloc]; //使用OC中alloc方法在堆上开辟空间存储数据,返回的是一个指向对象的指针
//改变一个结构体变量的成员变量的方式
struct Person * person3 = &person1;
person1.age = 20;
person3 -> age = 22;
//OC类创建的对象中在外部函数(main)不能直接使用成员变量
//内部函数->成员函数(方法) 间接使用
// person2 -> age = 18;
//OC中成员方法的调用使用[]来调用
[person2 func];
}
return 0;
}
网友评论