本文为大地瓜原创,欢迎知识共享,转载请注明出处。
虽然你不注明出处我也没什么精力和你计较。
作者微信号:christgreenlaw
setter方法:
- 一定以set开头, 并且set后面跟上需要设置的成员变量的名称去掉下划线, 并且首字母大写
- 一定有参数, 参数类型一定和需要设置的成员变量的类型一致, 并且参数名称就是成员变量的名称去掉下划线
- (void)setSize:(int)size;
getter方法:
- 一定有返回值, 而且返回值一定和获取的成员变量的类型一致
- 一定没有参数,方法名称就是获取的成员变量的名称去掉下划线
- (int)size;
点语法是编译器特性,一般用于成员变量。也可用于访问方法(不推荐如此做)。
不严谨的来讲,self不仅仅可以代表对象,也可以代表类。
若self在对象方法中,self代表当前的对象。
若self在类方法中,self代表当前的类,可以调用类方法。
严谨的讲,我们平时所接触的类,其实也是对象,叫做类对象,是其所对应的类类型的对象。
self不可以用来在当前方法中调用本方法。(也就是不能构成递归)
实例变量修饰符
其实这个东西在现今开发中几乎不用了。了解了解吧。
被修饰符修饰的变量,可否在其它类、本类、子类中访问,关系如下表。
其它类 | 本类 | 子类 | |
---|---|---|---|
@public | 可访问 | 可访问 | 可访问 |
@private | 不可访问 | 可访问 | 不可访问 |
@protected | 不可访问 | 可访问 | 可访问 |
注意: 默认情况下所有的实例变量都是protected
@package
- 如果是在其它包中访问那么就是private的
- 如果是在当前代码所在的包种访问就是public的
实例变量修饰符作用域: 从出现的位置开始, 一直到下一个修饰符出现
如果没有遇到下一个实例变量修饰符, 那么就会修饰后面所有的实例变量
给类发送class消息,将会返回该类的类对象
Class c = [Person class];
%@访问对象,实际上是调用对象的-(NSString*)description方法。