GeekBand OC 2. 类与对象

类型系统

1. 引用类型:类(Class)

2. 值类型

3. 类型装饰

1. 接口

属性表达状态

方法表达行为

2. 类型与实例

RPoint:类型

rp1:实例(称为“对象”)

alloc:请求动态内存分配

init:初始化(默认为0)

[]:发送消息

3. 结构(类似于C)

自动定义内存大小(与创建对象不同)

结构对应的实例称为“值”

不同点:内存分配方式不同,sp1不能发消息,引用类型与值类型

4. 对象的空间分析

栈上存储指针

指针指向的对象存储在堆上

只能通过指针访问对象

值的空间分析

实例值直接存储于栈

5. 栈(heap)堆(stack)

栈(sp1):存储值类型(较为自动化)

堆(rp1):存储引用类型对象(较为手动化)

6. 拷贝行为:rp1,rp2指向同一个对象;改变rp2会同时改变rp1

sp1,sp2是两个对象;改变rp2对rp1没有任何影响

7. 传参行为:调用函数需要前置声明

rp3和rp1指向同一个对象;改变rp3会同时改变rp1

sp1,sp3是两个对象;改变sp3对sp1没有任何影响

调用完成后process栈会被回收;回收后对rp1,sp1结果没有任何影响

8. 内存模型的重要性

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • ———————————————回答好下面的足够了---------------------------------...
    恒爱DE问候阅读 5,706评论 0 4
  • 第一天视频课程: Objective-C 语言简介 Objective-C 语言是一门在C语言基础上做了面向对象扩...
    Hysoka阅读 3,576评论 0 0
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,488评论 11 349
  • 307、setValue:forKey和setObject:forKey的区别是什么? 答:1, setObjec...
    AlanGe阅读 5,518评论 0 1
  • 一:java概述:1,JDK:Java Development Kit,java的开发和运行环境,java的开发工...
    ZaneInTheSun阅读 7,618评论 0 11

友情链接更多精彩内容