实例变量与方法
一、实例变量的可见度
二、方法
oc中的方法分两种:类方法和实例方法
类方法:只能类使用 eg:+ (id)alloc 注:类方法中不能使用实例变量
实例方法:只能对象使用,eg:- (void)sayHi
全局变量通常定义在.m文件里
引入头文件 “” he <>的区别
""一般引入自己创建的头文件,<>一般引入系统头文件
""系统会优先找工程中自检创建的文件中有没有,如果没有才会查系统类库
如果是尖括号,就会知道是系统的东西,不会找自己的类库,如果在系统中找不到那么会认为不存在这个头文件
//类方法的优势:不需要创建对象就可以调用的方法
//使用场景:某个功能跟对象没有联系,如果把方法写成实例对象,我们想要使用方法,还需要先创建一个对象,然后才能通过对象调用实例的方法,
这样做比较麻烦,因此可以使用类方法,直接用类名调用类方法即可
多参与单参赋值并存可以更方便。
OC里面不叫调用,叫发送消息[receiver message]OC中使用消息发送机制
1,类接收到消息,即方法
2,类找到方法并执行
(设置器)setter 和 (访问器)getter
我们之前写的那些赋值取值都可以称作setter和getter
苹果命名规范:
setter和getter命名用驼峰式命名
无论是setter还是getter内部操作的都是实例变量
每一个实例变量都需要一对setter和getter
- (id)init 这个初始化方法只能给实例变量设置默认值,不灵活
-(id)initWithName()name 自定义初始化方法,根据需求定义初始化方法。
初始化方法永远只调一次,只是初始创建对象的时候调用,以后再也调用
- (id)initWithName:(NSString *)name sex:(NSString *)sex hobby:(NSString *)hobby age:(NSInteger)age
{
_name = name;
_sex = sex;
_hobby = hobby;
_age = age;
count++;
return self;
}
initWith永远都要跟着alloc使用,不能单独调用
类的组合使用
在定义类的过程中,组合使用其他类型的对象
import 当a引入b文件,b又引入了a文件,这是会报错。
这样会导致循环引入头文件
需要使用对方的时候,有一个文件或者两个都改成@class b;在他们的.M文件引入头文件