Objective-C中对象间的has a关系的复合关系是什么
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,这篇文章将为大家详细讲解有关Objective-C中对象间的has a关系的复合关系是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。什么是复合关系
千家信息网最后更新 2025年11月07日Objective-C中对象间的has a关系的复合关系是什么
这篇文章将为大家详细讲解有关Objective-C中对象间的has a关系的复合关系是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
什么是复合关系?
类的复合关系是类的关系中最常见的一种。
复合是 has a 的关系,如Person类中包含一个成员属性,Book对象,Person has a Book。
复合关系的实现
OC中要求,所有对象都以指针的形式引用,所以这种关系应体现为:
Person类的对象中包含一个Book对象的地址。
图上所示,包含了三个对象:
Person对象(由new方法创建而来)
NSString对象(字符串对象的字面值@"张三"赋值)
Book对象 (由new方法创建而来)
复合关系的内存情况

显然,p指针一定是函数或者方法中的局部变量,其内存使用的是栈控件
Objective-C中的所有对象一定是在堆中的,故三个对象Person、NSString、Book的内存都是堆空间的
Person、NSString、Book的内存空间并不是连续或互相包含的
Person has a NSString 表现为 Person对象中有NSString对象的地址
Person has a Book 表现为Person对象中有Book对象的地址
循环引用问题
如果出现两个类中属性互相复合时,头文件互相包含会出现循环引用的情况
在头文件中使用@class是声明被复合的类,在源文件再包含该类的头文件即可解决这个问题
//AMPerson.h@class AMBook;@interface AMPerson : NSObject { AMBook * book;}@end//AMPerson.m#import "AMBook.h"@implementation AMPerson //...@end
//AMBook.h@class AMPerson;@interface AMBook : NSObject { AMPerson * person;}@end//AMBook.h#import "AMPerson.h"@implementation AMBook //...@end
关于Objective-C中对象间的has a关系的复合关系是什么就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
对象
内存
地址
文件
方法
三个
内容
属性
情况
指针
文章
更多
知识
空间
篇文章
问题
中包
循环
不错
两个
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全努力破除 思维
数据库建设技术设计开题报告
天龙八部手游经典服务器
做网络安全央企上市公司
加强对数据库安全的认识
jsp访问数据库
口袋妖怪数据库下载
没挂系统检测游戏数据库
数据库前端页面显示不出
pc服务器 报价
吃鸡服务器安装教程
2. 什么是数据库
仓库出入库数据库系统设计
cio负网络安全责任么
网络安全计酬方式
mybits数据库
饥荒联机加载不了服务器
樊兴华 网络安全
上海嘉定有哪些网络安全公司
空间数据库的模式
sql附加数据库配置文件
虎丘区正规软件开发品质保障
电脑网络安全模式怎么弄
数据库表主键设计
安阳软件开发应用范围
3d全息互动软件开发商
直播软件开发礼物特效
visio中的数据库标志
发票服务器连接失败怎么回事
华为服务器远程