Objective-C中对象间的has a关系的复合关系是什么
发表于:2025-01-16 作者:千家信息网编辑
千家信息网最后更新 2025年01月16日,这篇文章将为大家详细讲解有关Objective-C中对象间的has a关系的复合关系是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。什么是复合关系
千家信息网最后更新 2025年01月16日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安全错误
数据库的锁怎样保障安全
违反网络安全法是承担什么责任
云数据库组队
优酷 服务器
卫士通跟网络安全有关吗
专门用来高速下载的服务器
穿越火线生存服务器
云服务器运行通达信
大学网络安全会议总结
前台无法找到服务器怎么办
天津天听网络技术有限公司
江西省网络安全知识竞赛在哪里
小爱同学服务器有多大
软件开发服务方案价格
mysql数据库打开连接失败
u8管理服务器启动
如何拉取网页数据库
网络安全主题班队会纪实
淘宝服务器出现故障官方回应
前期的软件开发费用进入科目
数据库st是什么意思
信息网络技术选修3教学计划
南山医院网络技术科需要多少人
达梦安全数据库管理系统v82
衡水快报网络安全检查
数据库it外包工资
现场数据库量很大
网络技术部可以看见手机下载
斯福赛特 网络安全
数据库取数据
网络技术好就业么