1、static关键字
(1)C语言中的static
a、修饰局部变量
b、修饰全局变量
c、修饰函数
(2)OC中的static关键字
a、static不能修饰属性,也不能修饰方法
b、static可以修饰方法中的局部变量
如果方法中的局部变量被static修饰,这个变量就会变成静态变量存储在常量区,当方法执行完毕之后,不会回收,下次再执行这个方法的时候,直接使用,而不用再次声明
2、封装
@interface Student : NSObject
{
int _number
NSString *_name;
int _age;
}
-(void)setNumber:(int)number;
-(int)number;
-(void)setName:(NSString *)name;
-(NSString)name;
-(void)setAge:(int)age;
-(int)age;
+(instancetype)student;//如果方法的返回值是当前类的对象,那么方法的返回值就写instancetype
@end
//实现
@implementation Student
-(void)setNumber:(int)number
{
_number = number;
}
-(int)number
{
return _number;
}
-(void)setName:(NSString *)name
{
_name = name;
}
-(NSString)name
{
return _name;
}
-(void)setAge:(int)age;
{
_age = age;
}
-(int)age
{
return _age;
}
@end
3、self关键字
(1)在方法的内部可以定义一个和属性名相同的局部变量,这个时候,如果在方法中访问这个同名的变量,访问的是局部变量
(2)self:自己的;和Java、C#中的this关键字有些类似
可以在对象方法和类方法中使用,self是一个指针,在对象方法中self指向当前对象,在类方法中self指向当前对象,在类方法中self指向当前类
(3)self用在对象方法中
a、self在对象方法中,指向当前对象:谁调用对象谁就是当前对象
b、self指向当前对象的作用
可以使用self显示的访问当前对象的属性
self->属性 代表访问的是当前对象的这个属性
可以使用self来调用当前对象的其他对象方法
c、对象方法中使用self的场景
- 必须使用self的场景
–>如果在方法中存在和属性名相同的局部变量
如果想要访问同名的局部变量,直接写就可以了
如果想要访问当前对象的同名属性,必须使用self
–>在对象方法中,如果要调用当前对象的其他的对象方法,必须使用self - 选用self的场景
在方法中不存在和属性同名的局部变量,如果这个时候想要访问当前对象的属性,
用不用self效果都是一样的,都是访问的当前对象的属性
属性要求以下划线开头,局部变量不要求以下划线开头,按照这个规范来,实际上是不会重名的