对象方法:
1 减号开头-
2 只能由对象调用
3 对象方法中可以访问成员变量
4 对象方法中可以调用类方法
5 对象方法中可以调用对象方法
类方法:
1 加号开头 +
2 只能由类名调用
3 类方法中不可以访问成员变量
4 类方法中可以调用类方法
5 类方法中不能直接调用对象方法
6 类方法的名称可以和对象方法相同
类方法的优点"
1 不依赖对象,执行效率高
2 能用类方法尽量用类方法
类方法应用场景:
当方法内部不需要使用到成员变量的时候就用类方法
类方法一般用于编写工具方法
封装属性
封装:是指隐藏对象的属性和实现细节,仅对外提供公共的访问方法
成员变量如果是公开的,那么我们就不能控制外界对成员变量的赋值正确性所以一般都将成员变量写成不公开形式,只给外界提供方法来给成员变量赋值
在这个过程中我们可以通过函数来过滤实现赋值的安全性
组合模式:组合模式就是在一个类中,声明类其他对象的指针变量(把其它对象声明为当前对象成员变量)
组合模式就是一个"谁拥有谁"的概念
如何判断组合模式是否合理: 谁拥有谁
组合模式的优点:
全局对象方法中都可以直接访问,简化了代码
缺点:
依赖性比较大
组合模式的使用场景:
当多个方法中都用到了同一个对象,那么就把他设置成成员变量
下面这个就称之为没有名称的对象(匿名对象)
提前声明和实现一个类
@interface Person :NSObject
{
char* _name;
int _age;
float _weight;
}
每new一次就会开辟一块新的存储空间
[Person new]->_name = "jyk";
[Person new]->_age = 4;
[Person new]->_weight = 500;
当某一个方法只调用一次的时候可以使用匿名对象