第三章 类,对象和方法

什么是对象= =
像java,c++,objective-c都是面向对象的语言
而c就是过程性语言
面向对象编程就是你有一个东西,然后你要对它做什么。

比如说你拥有一辆车,它是你拥有的东西,但是它拥有自己的属性,它和别的车不一样,你想对它加油或者检修进行操作就是方法。而它属于车的大类。
类----车
对象----你的车
加油/检修etc.----方法
方法:类方法&实例方法

对一个大类进行的操作就是类方法(比如我要统计某个学校的学生的人数,就是对学生这个大类进行的操作)
对类中的某一个实例进行的操作就是实例方法(比如我要批改这个学生的某一科的作业,就是对一个实例进行的操作)

说了一堆,主要的概念就是,对象是类的一种独特表示,每个对象都带着自己独特的性质,然后方法就是用来改变这些数据的~

oc中类/实例方法的表示:

[ ClassOrInstance method ];

类名开头大写,其他开头小写;

以下是书上的一个示例代码:

#import 

//--- @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函数)
-表示实例方法
+表示类方法


屏幕快照 2019-03-07 下午8.07.29.png

你可能感兴趣的:(第三章 类,对象和方法)