@public:在任何地方都能直接访问对象的成员变量
@private:只能在当前类的对象方法中直接访问,如果子类要访问需要调用父类的get/set方法
@protected:可以在当前类及其子类对象方法中直接访问(系统默认下是用它来修饰的)
@package:在同一个包下就可以直接访问,比如说在同一个框架
在@implementation中成员变量的修饰符为@private,
在@interface中成员变量的修饰符@protected
*/
//全局变量
@autoreleasepool 自动释放池
NSObject 简写id 代表所有的对象类型 %@打印任意对象的信息
NSObject *obj=[[NSObject alloc]init];
NSLog(@"%@",obj); //obj就是对象 对象的本质就是指针
类(Class):对一类事物抽象的描述
对象(object):从一类事物中具体化出来的一个实例
类 对象
电脑 这台电脑
人 一个名字叫猪的人
#import:防止重复引用
#include:多次重复编译
@class 声明一个类,告诉编译器这个他后面的名字是一个类,关于这个类的定义实现我们暂时不用知道
<>:导入的是系统的库
“”:导入的时自定义的一些文件
类方法是“+”方法:用类去调用 +(Person*)person
实例方法是“-”方法:通过实例化对象去调用 -(id)initWithName:(NSString*)name
OC方法的声明格式
方法类型("-"方法、“+”方法)(返回值类型)方法名 : 参数列表;
-方法:实例化方法(在使用之前必须实例化一个具体的对象,并且只能通过对象调用)
+方法:类方法/静态方法(直接通过类名调用)
@optional //选择实现的方法
@required //必须实现的方法
类目:类目里不可以添加属性,只能添加方法 类目:给已知类增加方法、方法对外可见 类目、类别、分类、Category 功能:向已经有的类里添加方法(或者把不同功能的方法进行归类)
延展:增加私有方法,私有属性,让外部不可见
协议:实现通知,通知遵守这个协议的人去执行指定的动作