今天学的是oc语言面向对象编程。而以前我所学的c语言呢是面向过程的。这两种其实就是两种不同的思想,至于谁重要谁不重要,我认为都挺重要的,就好像有时候人有不同需求一样,自己需要时就用什么。
一、面向对象和面向过程的区别
面向过程关注的是解决问题需要哪些步骤,面向对象关注的是解决问题需要哪些对象。比如说,我现在要坐车去一个公园。对于这个问题,面向对象的方法就是,我们不能管车是怎么精确的运行,也不用管司机是怎么操作的,我们只管调用这个车和司机告诉他去这个地方就行了。这个对象就是这个司机和车。
二、oc中的面向对象
学习面向对象,首先要有两个概率,类和对象。那它们是什么意思以及怎么区别呢。
1. OC中的类相当于图纸,用来描述一类事物。也就是说,要想创建对象,必须先有类。
2. OC利用类来创建对象,对象是类的具体存在。
因此,面向对象解决问题应该是先考虑需要设计哪些类,再利用类创建多少个对象。
三、设计一个类
类的设计,只关心3样东西,分别是事物的名称,属性和行为。举个例子,比如说愤怒的小鸟这个游戏里。在游戏里有很多类,比如小鸟,猪,石头,玻璃板都是类,它们都有自己的属性,小鸟的属性有是什么颜色的,有多大等,行为呢就是它们能干什么,比如猪就有一个行为就是会笑。
四、实践
理论的东西学完了,那我现在就要实际地运行一个面向对象的程序。
1)设计
设计一个叫Person的类,它的属性有height,weight,face,方法有cook和wash。
创建了一个Myself对象,这个对象可以调用cook和wash方法。
2)创建一个.m文件,名字随便取吧,我在这就叫做面向对象设计.m吧。代码如下。
#import<Foundation/Foundation.h>
@interface Person : NSObject
{
@public
int height;
int weight;
int face;//颜值
}//@interface这里的大括号会默认属性值为零;
-(void)cook;//做饭
-(void)wash;//洗衣服
@end
@implementation Person
-(void)cook
{
NSLog(@"身高为%i,体重为%i,颜值为%i,做饭",height,weight,face);
}
-(void)wash
{
NSLog(@"身高为%i,体重为%i,颜值为%i,洗衣服",height,weight,face);
}
@end
int main()
{
Person *Myself =[Person new];
Myself->height=200;
Myself->weight=150;
Myself->face=300;
[Myself cook];
[Myself wash];
return 0;
}
3)运行一下呗
ok 成功了。