黑马程序员——使用self调用方法时的内存分配

原创 2015年07月09日 09:51:52
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------


1.self在对象方法中使用,指代的是调用当前对象方法的那个对象
(1)Person类的声明
<span style="font-size:14px;">@interface Person : NSObject
-(void)run;
-(void)eat:(NSString*) foodName;
@end</span>
(2)Person类的实现
<span style="font-size:14px;">@implementation Person
-(void)run{
    NSLog(@"人在走!");
}
-(void)eat:(NSString*) foodName{
    NSLog(@"人在吃%@",foodName);
    NSLog(@"%p",self);//打印地址
    [self run];//<span style="font-family: Arial, Helvetica, sans-serif;">self 指代的就是p</span>
}
@end</span>
(3)调用Person类
int main(int argc, const char * argv[]) {
    @autoreleasepool {
        //当前对象p 先吃东西,然后再走(吃和走是同一个对象)
        Person *p = [Person new]; 
        NSLog(@"%p",p);//打印地址 
        [p eat:@"油条"];
    }
    return 0;
}
(4)运行结果



分析:从以上打印结果可以看出,self和p相同。
内存图分析如下:





















相关文章推荐

黑马程序员——类方法和关键字self

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 首先lian方法的声明和实现:...

黑马程序员——入学Blog03----OC的self,super,类方法与对象方法

先看一个Java的例子 package com.think.test; public class Test { private int number; public void setNumber...

黑马程序员——OC语言------set和get方法(封装)、类方法、self关键字

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- set和get方法(封装)   一、适用场合 为避免成员被随意赋值,方便访问,使用set方法和...
  • casono1
  • casono1
  • 2015年03月19日 17:25
  • 372

黑马程序员_OC面向对象的三大特性之封装及OC中类方法和self的使用

zai 一、封装
  • aipeng
  • aipeng
  • 2014年05月30日 11:56
  • 694

黑马程序员_为什么需要动态内存分配

对于传统数组有着如下缺点: 数组的长度必须事先确定,而且只能是常整数,不能是变量 int a[5];//正确 int len = 5; int a[len];//错误 传统形式定义的数组,该数组的内存...
  • Dariel
  • Dariel
  • 2015年05月28日 09:46
  • 857

黑马程序员 一道内存分配的面试题

---------------------- ASP.Net+Android+IO开发S、.Net培训、期待与您交流! ---------------------- 一道基础面试题如下: 请问...

黑马程序员--C语言指针与动态内存分配

指针高级动态内存分配 一、存储划分   1、在C语言中,存储区大致分为5类:栈、堆、静态区、常量区、代码区。   2、栈       1)由编译器自动分配和释放       2)在函数体中定...

黑马程序员 另一道内存分配的面试题

---------------------- ASP.Net+Android+IO开发S、.Net培训、期待与您交流! ---------------------- 另一道题是这样的: Strin...

【黑马程序员】c语言的动态内存分配

---------- IOS培训、java培训、期待与您交流! ---------- 首先介绍c语言中最常使用的内存分配方式 //void *malloc(size_t siz...

黑马程序员--OC基础--类方法、对象方法和self的使用

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-1、类方法(1)类方法就是一个方法,它的使用不需要用户去创建一个类的实例进行调用而可以直接通过类名对方法进行调用。...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:黑马程序员——使用self调用方法时的内存分配
举报原因:
原因补充:

(最多只允许输入30个字)