面向对象一直是一个难以理解的问题 好多程序员对这块都是一个模糊的理解 我以前也是 虽然在网上看到程序里一切都是对象,但是具体呢,还是不知道,最近和一个大神级别的人物探讨了下 感觉很简单没什么难度 呵呵!!!
对象的产生是一种理念的诞生物的,编程无非就是把平常我们所做的事情和动作通过计算机语言描述出来,而这个描述的的过程又需要一定的理念,所以呢就产生了面向对象。下面我就说下什么是对象
我的讲解都在类里描述 这样比较好理解,能让初学者有个更好的思路,,不如说我们编写一个汽车的类 那么汽车有什么呢,1,轮子2.座位 那么我们就要这么写了(我用的是xcode 也就是oc写的,其他语言也一样)
#import <Foundation/Foundation.h>
@interface car : NSObject
{
int whell;
int seat;
}
-(void)Print;
@end
@implementation car
-(void)Print
{
NSLog(@"汽车的轮子有%d个\n汽车的作为有%d个",whell,seat);
}
@end
int main(int argc, const char * argv[])
{
@autoreleasepool {
car *car1=[[car alloc] init];
[car1 print];
}
return 0;
}
那么这个程序中什么是对象呢??? 书上说的程序里的每个代码都可以看作是对象 那好我就说 int seat是对象 ,,。其实这是不对的
我们首先说下类是怎么产生的 类就是相同特点的一类事物(对象)的的集合 车可以分为好多种 奥迪,宝马,法拉利等等 不管是什么车,他们都有座位和轮子 ,所以呢我们就写了一个车的类(并不是说车的类只有这辆个属性 而是我们不用的属性我们就不要写了,在这里我就用到了这俩个属性) 类就然是对象的集合,累就是描述对象产生的,所以就不言而喻了这个类的对象是车 有的人会问int seat和int whell是什么呢??? 他们是车的属性
下面说的是类中类
车有轮子 我们只能定义int类型的吗 换句话说就是车我们只能描述车有几个轮子,不能描述轮子的颜色嘛???一种语言如果不能做到这些事情 那么还叫做语言吗
我们可以声明一个轮子的类
@interface Whell : NSObject
{
int radius;//半径
NSString corol;//颜色
}
-(void)Print;
@end
到这个时候大家问了 我们声明了 怎么用呢?? 我们重写第一个程序
#import <Foundation/Foundation.h>
@interface car : NSObject
{
Whell *whell;//只用这个地方与上面不用
int seat;
}
-(void)Print;
@end
@implementation car
-(void)Print
{
NSLog(@"汽车的轮子有%d个\n汽车的作为有%d个",whell,seat);
}
@end
我写这篇文章是希望那些不知道对象的人对对象能够一定的理解 但是呢我感觉写的有点失败 希望看不懂得的可以给我留言 我会再进一步解释的