黑马程序员---【OC语言】02面向过程以及面向对象

------ Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

一、面向对象和面向过程思想


OC是面向对象的,C是面向过程的.面向对象和面向过程知识解决问题的两种不同思想;
 面向对象和面向过程区别:

1、以用电脑听歌为例子


(1)面向过程
(a)打开电脑
(b)播放电脑中的歌曲
(c)关闭电脑
(2)面向对象
(a)电脑开机
(b)播放歌曲
(c)电脑关机

2、区别分析


面向过程关注的时解决问题需要哪些步骤;面向对象关注的时解决问题需要哪些对象;
没有开发经验很难感受到他们的区别,两种思想都能达到解决问题的目的,但是解决思路不一样;


二、类和对象的关系


面向对象中有2个非常重要的概念:类和对象

1、如何创建对象


例如:创建汽车
(1)需要现有汽车的建造图纸,图纸上描述清楚汽车应该具备的属性和功能(行为)
(a)属性:轮子数,时速
(b)功能(行为):跑
(2)然后再根据图纸上的描述生成汽车
(3)每一辆汽车都是对象,都有自己具体的属性值,都是图纸的实例
(4)图纸是抽象的,汽车是具体的.图纸是对汽车对象的高度概括

2.OC中的面向对象


(1)OC中的类相当于图纸,用来描述一类事物,也就是说,要想创建对象,必须先有类
(2)OC利用类来创建对象,对象是类的具体存在
(3)因此,面向对象解决问题应该是先考虑需要设计哪些类,再利用类创建多少个对象

3.需要设计哪些类,如果设计类


(1)类的设计,只关心3样东西:
(a)事物名称(类名):人(Person)
(b)属性:身高(height),年龄(age)
(c)行为(功能):跑(run),打架(fight)
(2)一般名词都是类
(3)拥有相同(或者类似)属性和行为的对象都可以抽象出一个类


4、举例创建对象


定义一个Car类,拥有2个属性:轮子数,时速,一个行为:跑

(1)类的声明

//类的声明  
@interface Car : NSObject  
{  
    @public  
    int wheels;//多少个轮子  
    int speed;//时速  
}  
  
-(void)run;//跑的行为  
@end 
@interface :类的声明标志
Car :汽车类
: :继承
NSObject :父类,让其拥有new的方法,可以创建对象
@public 让其成员变量wheels和speed可以被间接访问:
- :对象方法标志
@end :类的声明结束

(2)类的实现

@implementation Car  
-(void) run  
{  
    NSObject(@"%i个轮子,%i时速的车子跑起来了",wheels,speed)<span style="font-family: 'Heiti SC Light';">;</span>  
}  
@end
@implementation :类的实现标志

(3)创建对象

//主函数  
int main()  
{  
    //创建车子对像  
    Car *c = [Car new];  
    c->wheels = 3;  
    c->speed = 300;  
      
    [c run];  
    return 0;  
} 

(4)完整代码如下


#import <Foundation/Foundation.h>  
//类的声明  
@interface Car : NSObject  
{  
    @public  
    int wheels;//多少个轮子  
    int speed;//时速  
}  
  
-(void)run;//跑的行为  
@end 

//类的实现  
@implementation Car  
-(void) run  
{  
    NSObject(@"%i个轮子,%i时速的车子跑起来了",wheels,speed); 
}  
@end 

//主函数  
int main()  
{  
    //创建车子对像  
    Car *
c = [Car new];  
    c->wheels = 3;  
    c->speed = 300;  
      
    [c run];  
    return 0;  
}  


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值