什么是对象= =
像java,c++,objective-c都是面向对象的语言
而c就是过程性语言
面向对象编程就是你有一个东西,然后你要对它做什么。
比如说你拥有一辆车,它是你拥有的东西,但是它拥有自己的属性,它和别的车不一样,你想对它加油或者检修进行操作就是方法。而它属于车的大类。
类----车
对象----你的车
加油/检修etc.----方法
方法:类方法&实例方法
对一个大类进行的操作就是类方法(比如我要统计某个学校的学生的人数,就是对学生这个大类进行的操作)
对类中的某一个实例进行的操作就是实例方法(比如我要批改这个学生的某一科的作业,就是对一个实例进行的操作)
说了一堆,主要的概念就是,对象是类的一种独特表示,每个对象都带着自己独特的性质,然后方法就是用来改变这些数据的~
oc中类/实例方法的表示:
[ ClassOrInstance method ];
类名开头大写,其他开头小写;
以下是书上的一个示例代码:
#import <Foundation/Foundation.h>
//--- @interface部分---
@interface Fraction : NSObject
-(void) print;
-(void) setNumerator: (int) n;
-(void) setDenominator: (int) d;
@end
//---@implementation---
@implementation Fraction
{
int numberator;
int denominator;
}
-(void) print
{
NSLog (@"%i/%i",numberator,denominator);
}
-(void) setNumerator: (int) n
{
numberator = n;
}
-(void) setDenominator: (int) d
{
denominator = d;
}
@end
//---program---
int main (int argc, char * argv[])
{
@autoreleasepool {
Fraction *myFraction;
//指针指向新分配的内存地址
//创建一个实例
myFraction = [Fraction alloc];//分配内存空间,保证对象变成初始状态
//返回值给myFraction这个对象
myFraction = [myFraction init];//初始化类的实例变量
//init给myFraction发送消息,要实例化一个特殊的对象,所以没有发送给类而是发送给类的一个对象;init也可以返回一个值(初始化的对象),把返回值存储在myFraction这个变量里
//可以直接合并
//写成 Fraction *myFraction = [ [ Fraction alloc] init ];
//给这个实例赋值
[myFraction setNumerator: 1];
[myFraction setDenominator: 3];
NSLog (@"the value is");
[myFraction print];
}
return 0;
}
@interface 用于描述类和类里的方法(声明)
@implementation 用于描述数据,并实现声明中的方法
program 实现程序的预期目的(main函数)
-表示实例方法
+表示类方法