码迷,mamicode.com
首页 > 其他好文 > 详细

OC_day2_总结

时间:2015-12-03 20:54:02      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:

1.多个对象之间关系

两个士兵共用一把枪

Soldier * s1 = [[Soldier alloc]init];

Soldier * s2 = [[Soldier alloc]init];

Gun * gun = [[Gun alloc]init];//共用的一把枪

[s1 fireByGun];

[s2 fireByGun];

2.属性的封装

封装的目的是增强安全性和简化编程,使用者不必了解具体的实现细节,而只是要通过外部接口,以特定的访问权限来使用类的成员。属性的封装也是如此

set是为成员变量赋值留出的入口,get获得成员变量的出口

set方法:1一定是对象方法,2一定以小写的set开头,后面接上成员变量的名称(不加下划线,首字母大写),3set方法参数类型一定与成员变量的数据类型相同,4set方法的返回值为void

- (void)setAge:(int)age;

get方法:一定是对象方法,2以成员变量名字作为方法名称就可以,3返回值类型一定与成员变量数据类型相同

- (int)age;

3.自动生成属性

xcode 4.x之前,@property属性生成器能够自动生成get和set方法的声明部分,@synthesize自动生成get和set方法的最简单实现部分,例如@property int age;

@synthesize age = _age;

Xcode 4.x之后既能生成getget和set方法的声明部分,也能生成实现部分。

4.如果需要进行数据过滤就要考虑重写@property生成的set方法了

5.在.m中可以声明成员变量,这个成员变量是私有的,只能在自己的类的内部进行访问

6.点语法

点语法是编译器特性,会主动转换成OC中的set,get方法(实质),使用点语法一定只能应用在调用set和get方法上

7.直接访问成员变量

只有->的方式才叫做直接访问成员变量

 

8.多态性

多态是不同方法对同一消息的不同响应,工程上采用父类指针保存子类对象的方法实现,多态是依赖于继承关系存在的,多态是运行时特性。

注意:应用多态时一定要注意要调用的方法最好在父类中声明实现的方法,,一般不建议去调用子类中特有的方法,因为这样有可能引起不可预知的错误。如果一定要调用子类中特有的方法,就必须进行强制类型转换

   定义Animal类,Dog类和Cat类,并且Dog和Cat继承自Animal

在Animal类中定义shout方法,Dog类实现为打印“狗汪汪叫”,Cat类中实现为打印“猫喵喵叫”,Animal * animal = [Dog new];则输出狗汪汪叫,,Animal * animal = [Cat new];则打印出猫喵喵叫

id是万能指针,比NSObject更为灵活,instancetype能够在返回类型不匹配的时候给一个黄色的警告。注意:id可以作为方法的参数传递,但是instancetype不可以 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

OC_day2_总结

标签:

原文地址:http://www.cnblogs.com/starainDou/p/5017422.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!