------
Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
一、面向对象和面向过程思想
面向对象和面向过程区别:
1、以用电脑听歌为例子
(1)面向过程
(a)打开电脑
(b)播放电脑中的歌曲
(c)关闭电脑
(2)面向对象
(a)电脑开机
(b)播放歌曲
(c)电脑关机
(b)播放电脑中的歌曲
(c)关闭电脑
(2)面向对象
(a)电脑开机
(b)播放歌曲
(c)电脑关机
2、区别分析
没有开发经验很难感受到他们的区别,两种思想都能达到解决问题的目的,但是解决思路不一样;
二、类和对象的关系
面向对象中有2个非常重要的概念:类和对象
1、如何创建对象
(1)需要现有汽车的建造图纸,图纸上描述清楚汽车应该具备的属性和功能(行为)
(a)属性:轮子数,时速
(b)功能(行为):跑
(2)然后再根据图纸上的描述生成汽车
(3)每一辆汽车都是对象,都有自己具体的属性值,都是图纸的实例
(4)图纸是抽象的,汽车是具体的.图纸是对汽车对象的高度概括
2.OC中的面向对象
(2)OC利用类来创建对象,对象是类的具体存在
(3)因此,面向对象解决问题应该是先考虑需要设计哪些类,再利用类创建多少个对象
(3)因此,面向对象解决问题应该是先考虑需要设计哪些类,再利用类创建多少个对象
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;
}