类是结构体和函数的封装
对象是类创建的变量
类不占内存 对象占内存
堆:是由程序员自己开辟的空间
栈:是由机器动态分配
外部函数不能直接访问对象的成员变量
调用成员方法通过对象的指针来调用对象的方法
先初始化父类,再初始化子类
带有参数的构造方法 初始化成员变量
-(Dog *)initWithAge:(int)age andName:(char)name;
类方法和成员方法可以重名
类直接调用的方法
1.+开头
2.类调用
3.类方法不能访问成员变量
-(void)print;
成员方法
1.-开头
2.对象调用
3.成员方法可以访问成员变量
+(void)print;
类方法的好处
1.类方法不依赖我们类创建的对象,提高我们程序的执行效率
2.类方法可以用来创建对象
3.一个功能模块,可以通过类方法解决的,就用类方法(公开简单的对外方法)
静态变量的创建在main函数创建之前,销毁在main函数之后
单例:在项目中时唯一的
单例作用,保存数据