【OC】对象、指针/方法、函数

—>对象的操作、对象作为函数

当学了OC的对象操作及对象作为函数,可能会对对象、指针、方法、函数感觉很混乱。下面的程序是一段帮助理解对象、指针/方法、函数的程序:

#import <Foundation/Foundation.h>
@interface Person : NSObject
{
    @public
    int age;
    double height;
}
- (void)print;
@end

void test1(int newAge, double newHeight);
void test2(Person *newP);
void test3(Person *newP);
void test4(Person *newP);

int main()
{
    Person *p = [Person new];
    p->age = 10;
    p->height = 1.5f;

    test1(p->age, p->height);
    [p print];

    test2(p);
    [p print];

    test3(p);
    [p print];

    test4(p);
    [p print];

    return 0;
}

@implementation Person
- (void)print
{
    NSLog(@"年龄=%d,身高=%f", age, height);
}
@end

void test1(int newAge, double newHeight)
{
    newAge = 10;
    newHeight = 1.6;
}

void test2(Person *newP)
{
    newP->age = 20;
    newP->height = 1.7;
}

void test3(Person *newP)
{
    Person *p2 = [Person new];
    p2->age = 40;
    p2->height = 1.8;
    newP = p2;

    newP->age = 30;
}

void test4(Person *newP)
{
    Person *p2 = newP;
    p2->age = 50;
    p2->height = 1.9;
    newP->age = 60;
}

下面简单说一下区别:
1、对象的创建:类名 *对象名 = [类名 new];

OC中对象通过以指针形式创建出来
记住:每创建一个对象都可以理解为它们只是属性等一样,本质(地址等)不一样的,就像每个人都是独立的个体,都有头发等特征,至于头发是粗是细就有所不同了

2、方法与函数:
方法:
只要是对象的方法,都以“-”开头,还有()来包括数据类型
函数:
函数中以()来包括形参

下面分析一下这个程序,对于这种看上去挺长的程序,个人习惯是直接看main()函数(其他先不理会):

Person *p = [Person new];
    p->age = 10;
    p->height = 1.5f;

    test1(p->age, p->height);
    [p print];

    test2(p);
    [p print];

    test3(p);
    [p print];

    test4(p);
    [p print];

直接分析这一部分即可,下面是个人分析图:
这里写图片描述
【上图中数据类型为double的变量为省地方,在图中都没有以六位小数位形式表示】

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值