工程里的东西才是最全的,但类和对象较多,无法上传,压缩文件也无法上传。总结的话总感觉有所遗漏:
//****** OC第二讲实例变量可见度、方法 ******/
//实例变量的可见度
/*
常见的可见度有三个:
@public 公开的 实例变量可以在类的内部和外部操作
@protected 受保护的 实例变量只能在该类及其子类中操作
@private 私有的 实例变量只能在该类内部操作
什么叫做类的内部,也就是该类的@implementation 和 @end之间
*/
/方法
/*******
OC中方法分为两种:
1.类方法
2.实例方法
类方法:类方法只能类去使用,例如:+(id)alloc;
类方法中不能使用实例变量
实例方法:只能对象使用,比如:- (void)hello;
- (void)replaceObjectAtIndex:(NSUInteger)index withObject:(id)anObject;
(“-”是方法类型标示符)
((void)是方法返回值类型)
(replaceObjectAtIndex:withObject:这是方法名)
((NSUInteger)(id)都是参数类型)
(index anObject参数名字(相当于C语言的形参))
方法名是:
删除了类型标识,返回类型,参数类型,参数名,空格之后剩下的就是方法名
类中不能出现同名方法。
“ : ”标识参数,不能省略。有冒号必须有参数。
******/
//setter getter
/*
在OC里,为实例变量赋值的方法称作setter(设置器)
读取实例变量的方法被称为getter(访问器)
setter、getter的书写格式
如果一个实例变量是int age;或者int _age;
setter的书写格式如下:
- (void)setAge:(int)age;即set+首字母大写的实例变量名(忽略下划线)。
getter的书写格式如下:
- (int)age;即返回值类型与变量类型一致,方法名与实例变量名相同(忽略下划线)
无论setter还是getter内部操作的是实例变量
每个实例变量都需要一对setter和getter方法
//#import #include @class
/*
导入头文件,即:导入头文件中的内容到当前类。
#import “”导入自定义类,#import <>导入类库中的头文件。
功能类似C语言中的#include,但是可以避免头文件被重复导入。
容易出现循环导入头文件问题。
@class:
告诉编译器@class后的字符串作为类名使用,并未导入类的接口内容。
有效避免嵌套循环导入。
*/