iOS 类方法和对象方法的区别

浅析iOS中实例方法和类方法 OC中实例方法和类方法 阅读详情

1、对象方法:

  • 定义: - (void)test;
  • 调用: 对象方法需要创建对象,通过对象去调用
  • 在对象方法中,可以使用类名直接调用当前类的类方法。
  • 对象方法可以和类方法同名
    2、类方法:
  • 定义: + (void)test;
  • 调用: 类方法 直接通过类名去调用
  • 节约空间,因为调用类方法不需要创建对象,所以节约了空间。
  • 提高效率,调用类方法不需要拐弯抹角,直接找到类。
  • 在类方法中不能使用 self 调用当前类的其他对象方法。因为对象方法只能通过对象去调用,此时对象还没有创建。
  • 在类方法中不能直接调用类的属性
@interface Person : NSObject
//创建一个对象方法
- (void)test;
//创建一个类方法
+ (void)test;
@end
@implementation Person
//实现对象方法
-(void)test {
    NSLog(@"这是对象方法");
}
//实现类方法
+(void)test {
    NSLog(@"这是类方法");
}

@end
//对象方法和类方法的区别
//调用对象方法,需要创建对象对象
 Person *p1 = [[Person alloc]init];
 [p1 test];
        
//调用类方法,直接通过类名去调用
 [Person test];

打印:
[35630:128229] 这是对象方法
[35630:128229] 这是类方法

3、对象与对象之间的关系

  • 组合关系:一个对象是由多个对象组合起来的。比如计算机对象是有硬盘对象、CPU对象、主板对象、内存对象组合起来的。那么计算机和硬盘、CPU、主板等对象的关系就叫组合关系
  • 依赖关系:一个对象的方法的参数是另一个对象,那么他们的关系就叫依赖关系。比如B类是A类方法的参数。那么就说A类依赖于B类。(美女打电话案例)
  • 关联关系: 一个类作为另外一个类的属性,但是他们不是组合关系,而是一个拥有的关系。(人有一条狗,将狗对象作为人对象的一个属性)
STM32 CubeMX实战:手把手教你用I2C驱动IST8310磁力计(附完整代码) 本文详细介绍了如何使用STM32 CubeMX和I2C驱动IST8310磁力计,从硬件连接到代码实现的完整流程。重点讲解了I2C通信异常处理、传感器初始化序列优化以及中断驱动数据采集方案,帮助开发者快速搭建可靠的地磁场数据采集系统。 阅读详情

相关推荐

PLc S7-200 smart如何使用Modbus 485通讯传输接收数据

西门子在 STEP 7-Micro/WIN SMART 中正式推出 Modbus RTU 主站协议库(西门子标准库指令)。使用 Modbus RTU 主站指令库,可以读写 Modbus RTU 从站的数字量、模拟量 I/O 以及保持寄存器,从而实现PLC通过modbus方式控制其他器件。提示:以下是本篇文章正文内容,下面案例可供参考。

xjbsw0的博客 6万+

【iOS学习】十四、对象方法与类方法

在OC中,用-表示对象方法,+表示类方法 类方法与对象方法的区别: 1、对象方法必须使用对象调用 类方法必须用类来调用 2、对象方法可以直接访问属性变量(成员变量) 类方法不能 3、调用类方法的效率比对象方法高 4、类方法和对象方法可以相互调用如果方法中没有属性,尽量用类方法,类方法一般用于定义工具方法: 字符串查找 文件操作 数据库操

practice makes perfect 461

a股level2数据接口的最优委托信息

Level-1提供的数据并不可以知道委托了xxx手是有多少人下的,以及每个人下了多少的明细。通过Level-2的这个详细买卖盘数据,盘口上的单子到底是散户小打小闹,还是主力真刀实枪在干,都一览无余。交易类型:1-市价,2-限价,3-本方优先,10-撤单, 11-暂不清楚( 基金/ 债券有此值)除了提供逐笔成交记录这个信息外,还提供了最优委托信息,也就是盘口中前50笔订单的委托数量明细。那么Level-2盘口委托数据的速度更新是非常快的,大家可以通过。交易方向:0-未知,1-买入,2-卖出。

Qq_2037696191的博客 1162

iOS的类方法和实例方法区别与使用

1.什么是类方法? 在OC类定义方法时以 + 开头的方法,又称为静态方法。如:+ (viod)方法名{ }. 作用:不用实例话就可以直接调用的方法,常用于一些common或者UtiKit等公共方法类中。 调用:[类名 方法名】 限制: 不能使用自身属性 2.什么是实例方法? 在OC定义中以 - 开头的方法。如: - (viod)方法名{ } 作用:必须先创建实例对象,实例对

小桥流水哗啦啦,iOS Coder 哒哒哒 6559

01|无代码开发 | 如何使用Zion实现导航网站制作

以上就是我制作导航网站的心得,分享给大家,作为一个小白想要独立搭建一个网站还是比较困难的,而在Zion不仅可以用可视化的方法进行搭建,甚至还可以一键发布,不用考虑服务器域名啥的问题,真是太方便了。

2301_76262110的博客 1381

Docker环境下onlyOffice 7.5.1破解版部署全攻略(含ARM架构适配)

本文提供了在Docker环境中部署OnlyOffice 7.5.1破解版的完整实战指南。内容涵盖x86与ARM架构服务器的详细部署步骤、环境配置、持久化存储设置以及生产环境下的安全与性能优化。重点解决了ARM架构适配的常见问题,并分享了使用Docker Compose进行服务编排和日常维护的技巧,帮助用户快速搭建私有化文档协作平台。

redis7keeper的博客 348

IOS 类方法和实例方法

定义 类方法,也称静态方法,在OC中方法名前的修饰符号为:(+),C++中是指用static关键字修改的方法,Swift里是class func。 实例方法,在OC中方法名前的修饰符号为:(-),C++中指不用static关键字修饰的方法,Swift里是普通func。 区别 类方法 1、self指的是Class 2、可直接通过类名调用 3、在程序开始时生成,方法是连续...

weixin_30337157的博客 244

NCCL 源码深度解析:从初始化到通信链路构建全流程

本文深入解析了NVIDIA Collective Communication Library (NCCL) 的核心工作机制,从通信组初始化、硬件拓扑发现,到P2P、共享内存及网络传输链路的构建。详细剖析了源码中集合通信任务的执行流程与Proxy线程的协同机制,为开发者进行高性能分布式训练的性能调优与深度问题排查提供了清晰的底层视角。

hp777的博客 543

ios开发中类方法以及self的注意点

Objective-C里面既有实例方法也类方法。类方法(Class Method) 有时被称为工厂方法(Factory Method)或者方便方法(Convenience method)。工厂方法的称谓明显和一般意义上的工厂方法不同,从本质上来说,类方法可以独立于对象而执行,所以在其他的语言里面类方法有的时候被称为静态方法。 注意点一:类方法 1,类方法可以调用类方法。 2,类方法不可以调用

huifeidexin_1的专栏 1万+

有限元分析-静力学分析-与分析解对比-——以阶梯轴的静力分析为例——静态结构分析

150mm,a=300mm{a=300mm}a=300mm,b=200mm{b=200mm}b=200mm,L=1000mm{L=1000mm}L=1000mm,F=300kN{F=300kN}F=300kN,材料为45,弹性模量E=2.1e11Pa{E=2.1e11Pa}E=2.1e11Pa,泊松比v=0.28{v=0.28}v=0.28,屈服应力δs=355MPa{δ_s=355MPa}δ。使用line body生成的模型,可以选择自动划分网格的,WB会将以梁单元将其划分完成,例如图2所示。

qq_15963745的博客 63

Plant Simulation 双深位立库开发系列教程-货架参数化

为了方便用户进行货架参数化,我们需要在交互界面上进行参数调整,右键打开RackLane,打开Dialog,在Rack_tab的tab下创建相应的对象,并创建NumberOfRightRack和NumberOfLeftRack作为数据连接对象。通过Rack._3D.VisibleGraphicGroups := ["default"]来切换需要显示的Rack,当不需要显示则可以Rack._3D.VisibleGraphicGroups := [""]即可。首先,加载默认的HBW库到模型中,确保结构树当中有。

santayana的专栏 1249

IOS中的类方法和实例方法

声明方法的开头为正号(+)的通知编译器表示为类方法class method,类方法属于类对象而不是类的实例对象,通常用于创建新的实例。我们称这种用来创建新对象的类方法为工厂方法 factory method。 如果某个方法所实现的是很通用的功能,比如创建一个实例对象或访问一些全局类数据,最好声明为类方法。 stringWithFormat:是一个类方法。 例如: NSString *s...

weixin_30908941的博客 153

基于ZYNQ的HP总线与DDR交互:实现PL与PS高效数据传输的完整指南

本文将深入探讨如何通过AXI HP总线实现PL与PS的DDR交互,结合代码示例、硬件配置与创新优化,助力开发者掌握这一关键技术。ZYNQ内部通过AXI HP接口直接连接PL与DDR控制器,PL通过AXI协议发送读写请求,绕过PS的CPU直接操作DDR。通过AXI HP总线实现PL与PS的DDR交互,开发者可充分发挥ZYNQ异构架构的优势。在Xilinx ZYNQ系列芯片中,PS(Processing System)与PL(Programmable Logic)的协同设计是其核心优势。

QQ_778132974的博客 1219

iOS对象方法和类方法的区别与调用方式

作为一个iOS程序员初学者,会搞不清楚对象方法和类方法的区别

panadalove的博客 2769

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

ios开发中类方法与实例方法区别 以及self有什么不同

Objective-C里面既有实例方法也类方法。类方法(Class Method) 有时被称为工厂方法(Factory Method)或者方便方法(Convenience method)。工厂方法的称谓明显和一般意义上的工厂方法不同,从本质上来说,类方法可以独立于对象而执行,所以在其他的语言里面类方法有的时候被称为静态方法。 注意点一:类方法 1,类方法可以调用类方法。 2,类方法不可以调用

开发之谈 8191

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

ios开发中类方法与self的注意点 与实例方法区别

ios开发中类方法与self的注意点 与实例方法区别.

sammyieveo的专栏 1070

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

黑马程序员----实例方法跟类方法的区别

类方法和实例方法   实例方法是是以 - 开头 ,类方法是以 + 开头;  实例方法是用实例对象访问,类方法的对象是类而不是实例,通常创建对象或者工具类。 是对类本身执行某些操作的方法例如创建类的实例 在实例方法里,根据继承原理发送消息给self和super其实都是发送给self在类方法里面self是其他的类的类方法,在类方法中给sel

qq_17714921的专栏 502

黑马程序员 oc弱语法,类方法,self,重写方法,super

-----------黑马程序员 IOS培训、Android培训、Java培训、期待与您交流---------------- #import <Foundation/Foundation.h> @interface Person : NSObject + (void)test1; - (void)test1; + (void)test2; - (void)test2; @...

weixin_30337157的博客 89

iOS创建对象 实例方法 类方法

创建对象 Objective-C创建对象需通过alloc以及init两个消息。alloc的作用就是分配内存,init则是初始化对象。init和alloc都是定义在NSObject里的方法,父对象收到这两个消息并做出正确回应后,新对象才创建完毕。 MyObject *my = [[MyObject alloc]init]; //Objective-C 2.0中,若创建对象不需要参数,则可

Little-Dasiy的博客之旅 631

iOS OOP 面向对象编程基本概念

1. 面向对象的基本概念 面向对象编程 (OOP, Object Oriented Programming) 面向对象分析 (OOA) 面向对象设计 (OOD) 1. 对象(实例)和抽象(类)对象到类为抽象化类到对象为实例化2. 对比Simula 67 学派 (C++)Smalltalk 学派 (Objective-C)2. 类和对象的基本概念1. 实例化对象Foundation 框架NSObjec

王慧勇 1969

iOS 温故知新(三)

1、一个objc对象的isa的指针指向什么?有什么作用? 指向他的类对象,从而可以找到对象上的方法 2、一个objc对象如何进行内存布局?(考虑有父类的情况) 所有父类的成员变量和自己的成员变量都会存放在该对象所对应的存储空间中. 每一个对象内部都有一个isa指针,指向他的类对象,类对象中存放着本对象的 根对象就是NSObject,它的superclass指针指向nil 类对象既然称为对象,那它...

weixin_38885024的博客 173

iOS-测试用例测试数组"firstObject"以及"lastObject"性能

在开发中数组可以说是最常用到的数据结构了,无论是存储对象还是获取沙盒目录数组中文件路径,会经常用到数组的两个对象方法: 即 [xx数组 firstObject] 和 [xx数组 lastObject]. 譬如获取沙盒中cache文件夹路径[NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) fi

极客学伟的技术分享社区 3528

IOS中 init和initialize

IOS中 init和initialize 一、init和initialize 1.方法类型 1> init属于对象方法,-开头 2> initialize属于类方法,+开头 2.调用时刻 1> init:每个对象初始化的时候调用一次 2> initialize:每个类初始化的时候调用一次 (一个对象和一个类都只初始化一次) 3.例子...

weixin_30544657的博客 137
上一篇: iOS 运行时动态交换两个方法(Method-Swizzling)
下一篇: iOS 通过runtime关联对象给分类动态创建成员变量
same_life
博客等级 码龄7年 25粉丝 66原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值