一.类方法
类方法的好处:
1)不依赖对象,不需要开辟内存空间,也可以直接实现某些功能,节约内存,提高效率;
缺点:不能访问对象的成员变量(指类方法在 方法实现的时候不能直接访问成员变量);
类方法和对象无关,是属于类的,没有对象,自然不能调用对象的方法,不能使用对象的成员变量;
类方法自身不能调用方法, 需要通过类取调用
成员变量,实例变量,字段
类方法的原作机制:
1)实现类的封装性;
将在堆中申请内存,成员变量初始化这两个步骤在内部进行;
2)在类方法声明部分需要 返回值 和 参数;
返回值是运行的结果;参数就是你需要的成员变量的具体值;
[Calculator sumWithA:10 andWith:20] 参数直接输入成员变量,返回计算结果;
+(Student *)studentWithName:(NSString *)name andWithAge:(int)age
andWithSex:(NSString *)sex andWithScore: (float)score;
二.继承
//重写【重新实现父类提供的方法】-当父类的方法不能满足子类的需求是,使用重写这 个方法来完善功能
//那么重写之后,再调用该方法,会默认调用重写之后的方法
三.new
1.成员变量的作用域
1)属性自动帮我们声明的成员变量,默认是私有的,所以子类访问该 属性,使用点语法访问/或者自己在子类的.h文件中手动声明成员变量 2)在.m文件中声明的成员变量,强制性私有化;(声明私有成员变量常
即使用@public也无法调用; 用方法)
在子类中用点语法也不能调用(自能自己内部使用)
2.构造方法 Stundet *stu = [[Stundet alloc] init];
1)自定义初始化方法
//1.先初始化父类
父类初始化成功
//2.再初始化子类独有的那部分
//super 用来调用父类中方法的关键字
格式:
-( id ) init{
self = [ super init ];
if (self ){
self.age = 20;
}
return self;
}