OC中的get和set实质和C#/java中的一样
只是表现形式不同而已
如下:
1 @interface Car : NSObject 2 { 3 int wheels; 4 } 5 6 -(void) run; 7 -(void) setWheels:(int)newWheels; 8 -(int) wheels; 9 @end
实现:
1 @implementation Car 2 3 -(void)run{ 4 NSLog(@"%i个轮子的车跑起来了",wheels); 5 } 6 -(void) setWheels:(int) newWheels{ 7 if (newWheels <= 0) { 8 newWheels = 4; 9 } 10 wheels = newWheels; 11 } 12 -(int) wheels{ 13 return wheels; 14 } 15 @end
命名规范:
set方法顾名思义是设置值的方法,在OC中一般以set开头,变量的首字母大写,目的主要起到一定的限制作用,如果设置的值不合理的话我们可以再方法中进行判断,避免直接访问其变量
get方法是取值的方法,在OC中一般和变量名一致(我比较倾向于get开头)
成员变量命名规范:
一般以 _ 开头,这是规范,一般以 _ 开头的变量就是成员变量,所以上面代码中的 int wheels;应该改为 int _wheels;则没有以_开头的则是方法
方法:
以减号开头的方法是对象方法,如: -(void) run{...},这个方法只能用对象来调用
以加号开头的方法为类对象,如 +(void) run{...},这个方法可以通过类名直接调用,在C#中就是静态的方法,但是也有区别,OC中的类方法只能用类来调用,不能用对象来调用,而C#的静态方法是可以通过对象来调用的.
类方法中不能访问实例变量,实例变量只能通过对象调用.