------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
经过了C语言基础的学习,从一个0基础的小菜鸟,到现在了解了各种参数、函数、循环以及复杂数据类型。
之后又进阶到了Object -C的学习,原来编程可以这样做!程序并不只是一步一步按照顺序来写,也可以用对象-方法的思路,简直像发现了一个新大陆一样!
原来,这就是面向对象的编程思想!
那么,到底什么是面向对象思想?
官方的说:
面向对象编程-------(Object Oriented Programming),简称OOP,是一种程序设计思想。这种思想把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数。
我自己的理解:
世间万物,皆可为对象。
是不是忽然有一种武林绝学的感觉?
没有错,事实上,在“编程”这个江湖里,有两各门派!一个是“面向过程”门派,他们讲究一招一式有序进行,比武中先后有序,不可乱了规矩。而另外一个,就是“面向对
象”门派,这个门派讲究万变不离其宗,招式烂熟于胸,打斗中随机应变!
嗯,还是有点“玄”。
举个例子:
假设我们要表示一个学生的成绩表,每一个学生对应一个分数。面向过程的时候,我们可以使用一个“字典”:
NSDictionary *dic1 = @{@"name" : @"Jack", @"score" : @98}; NSDictionary *dic2 = @{@"name" : @"Rose", @"score" : @81};之后呢,可以用一个函数,来按顺序打印学生的成绩:
NSLog(@"%@", dic1); NSLog(@"%@", dic2);
而如果我们采用面向对象的思想呢?
我们就可以创建一个学生的对象,用方法来实现。
<pre name="code" class="objc">@property (nonatomic, retain) NSString *name;- (void)print;@end@implementation Student- (void)print{NSLog(@"name = %@\tscore = %d", _name, _age );}@end
这样我们就定义了一个Student类,这类里面有学生的姓名,即_name。也有学生的成绩,即_score。
再创建对象,赋值之后打印。
Student *stu1 = [[Student alloc]init]; stu1.socre = 98; stu1.name = @"Jack"; Student *stu2 = [[Student alloc]init]; stu2.socre = 81; stu2.name = @"Rose"; [stu1 print]; [stu2 print];
这就是2者之间的区别。面向过程是,我们要打印学生1的成绩,就输出1行成绩。打印学生2的成绩,就在给计算机一个指令,让它再输出一行成绩。
而面向对象呢?我们直接创建了一个Student的类,这个类包含了我们需要的属性和方法,想创建多少个学生(实例)都可以,想打印成绩(方法)的时候随时打印。
对象中使用的方法,从某种意义上来说也可以理解为函数,但方法中使用的参数是来自我们的类或者对象的成员变量。
说了那么多,什么是类、对象、方法呢?
通俗的说其实跟大自然中,物种的分类很像。比如,”猫科动物“是自然界一个类,这个类也可以作为面向对象思想里的类(Class)。通过这个类我们可以创造什么动
物呢?”猫“、”豹子“、”狮子“、”老虎“都是猫科,这就是具体对象,程序中我们也叫他们实例“(intstance)。以”猫“为例,猫有什么样的属性呢?“颜色”、“花纹”、“性格”
、“年龄”、“质量”等等。这些都可创建成成员变量将他们与我们的类绑定在一起。使类不仅是一个名字,具有更多的细节、也更加加准确。那么猫会做些什么行为呢?
可以“吃”,可以跑,可以“叫”。这些都可以是猫的“方法”,在创建类的时候可以设置类似的“吃”方法,使我们的小猫会吃东西。在初期阶段可以理解为“实例”所能做
的“行为”。
如何用代码创建一只我们的小猫呢?别急,来了:
@interface Cat : NSObject { int _age;//小猫的年纪 int _weight;//重量 NSString* _colour;//花色 } - (void)miao;//“喵喵”叫的喵方法 - (void)run;//它很调皮,会跑去各种地方 - (void)eat;//饿了就喂喂它 @end @implementation Cat - (void)miao { NSLog(@"喵喵~"); } - (void)run { NSLog(@"啊!跑掉了!"); } - (void)eat { NSLog(@"饿了吧,吃点鱼!"); } @end
好了,现在一只调皮可爱的猫咪已经出来了。是不是很神奇。
搜索
复制