黑马程序员---学习笔记17:OC基础(4)

黑马程序员SpringMVC课堂笔记 立即下载

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-



引入类方法可以减少内存的占用,因为只是使用对象方法的话,在调用函数时,必要首先创建对象,这会占用内存堆区的一部分空间。但是如果用类名直接引用方法,就会节省这块空间。


声明:
[img=http://img.bbs.youkuaiyun.com/upload/201508/17/1439799637_344063.png][/img]

调用格式:【类名 方法名】

类方法的声明和对象方法可以,同名,因为她们的方法类别不一样。不会造成混乱。

类方法使用注意事项:

1)类方法可以和对象方法同名
2)类方法可以从子类继承,子类可以重写类方法,
3)类方法和对象方法一样需要声明和实现
4)类方法只能通过类发送类方法消息才能被执行,对象是不能调用的
5)在类方法中使用了self,这个self执行的类对象class object 而不是实例对象instance object

类方法的优点:
1)节省内存空间
2)提高效率
3)作为工具方法(统计一个字符串有多少字符)

类方法易犯错误
1)在类方法中使用了类的成员变量
2)类方法是不能访问实例变量,实例变量只能由实例对象访问


对象方法和类方法的比较
1)对象方法
以- 号开头
可以使用成员变量
用对象调用对象方法
对象方法可以调用当前对象或其他对象的方法
(1)在对象方法中创建一个对象
(2)将调用的对象作为参数传递过来
(3)可以使用self 【self 对象方法】

在类方法中调用其他类的类方法
(1)可以直接使用本类类名或者其他类名
(2)可以使用self 【self 类方法】

2)类方法
以+号开头
不可以使用成员变量
用类名调用类方法

类方法可以调用对象方法(将对象作为参数传入)和类方法

!!!类方法不能调用自身,如果做了会发生无限循环

类方法的应用场景::

如果我们调用一个方法,该方法不需要使用成员变量(方法实现中不需要使用成员变量,成员变量可以做参数),我们就可以声明为类方法

为什么类方法不能使用成员变量?
类方法的使用没有创建对象,在堆区中就没有为成员变量分配存储空间,成员变量就没有值,访问就没有意义

匿名类:
1)使用匿名类访问成员变量(能,只能访问一次),以后再次访问实际上访问的是新空间
【Car new】->speed=250;
NSLog(@"%d" ,[Car new]->speed); //打印的结果是0 ,再次使用匿名类的时候会再次创建新对象

2)使用匿名类可以调用成员方法
[[Car new] stop];
[[[Car alloc ] init] stop];
[[Car alloc] init]等价与[Car new]

拷贝其他工程中的文件到新的target
1)目标文件---show in Finder,拖拽到新工程
2)将目标文件复制到新工程的文件夹内,新工程--右击(add。。。),如果还不行,找到project---右侧build phases--下面compile sources添加

匿名类作为方法的参数:
【【Person new】 goHome:【【Car alloc】init】】;
匿名类优缺点:
优点:简化代码方便方法调用
缺点:匿名对象实例以后,只能正确使用一次成员变量。

springboot全套教程2018年2.0版本 spring boot 2点0 2018年最新基础教学视频 我买的 免费分享出来 哪家的就不说了 很出名 下载 不会吃亏 学习完 搭建boot项目 开发是没有什么问题的 深入的话 希望去看api文档。。。 立即下载

相关推荐

ACR 磁共振安全手册 2024 更新版:全面保障 MRI 安全实践

MR 环境:MR 系统周围的三维空间,包含法拉第屏蔽体积和 9 高斯线,医疗设备在此区域可能因暴露于 MR 设备产生的电磁场而构成危险,需进行访问控制以降低风险MR 受控访问区域:MR 系统周围的局部定义区域,包含 MR 环境(包括其静磁场),访问仅限于授权人员MR 抛射物区域:围绕 MRI 系统的 IV 区区域,铁磁物体在此有成为抛射物的风险图一 磁共振环境:场地规划与区域划分。

楚山之石的博客 2603

17、OC 协议(protocol)

协议的作用与Java中接口的作用非常类似,用于定义类应该遵守的规范,协议不提供实现,只定义规范。协议中定义多个类的公共行为规范,协议通常定义一组公用方法,方法的实现交给类去完成。 协议的基本语法格式如下: @protocol 协议名 父协议1,父协议2...> //协议方法 @end 协议支持多继承,可以看到上面的语法格式,多个父协议放在 协议的方法需要类去实现,如果类没有

逆袭的青年的专栏 3129

AlphaFold2算法详解

正文:https://www.nature.com/articles/s41586-021-03819-2 补充文件:https://static-content.springer.com/esm/art%3A10.1038%2Fs41586-021-03819-2/MediaObjects/41586_2021_3819_MOESM1_ESM.pdfhttps://static-content.springer.com/esm/art%3A10.1038%2Fs41586-021-03819-2/Med

Daisy4的博客 1万+

17-oc面向对象三大特点

继承性,封装性,多态性 继承性 子类获得父类的特性就是继承 被继承的这个类我们称之为父类/超类 继承了某个类的类我们称之为子类 在声明子类的时候,在子类名称后面通过:父类名称方式来实现继承 @interface子类名称:父类名称 @end 当B类继承A类,那么B类就拥有A类所有的属性和方法(类方法/对象方法) 继承其它特性(...

481

CentOS7下Node.js v20+安装与常见依赖库问题解决指南

本文详细介绍了在CentOS7系统下安装Node.js v20+的完整流程及常见依赖库问题的解决方案。通过升级glibc到2.28+、配置环境变量以及处理libstdc++版本问题,帮助开发者顺利在老旧系统上部署最新版Node.js,提升开发效率。

weixin_30689307的博客 157

深入解析Matlab phantom函数:从基础模体到自定义头部仿真

本文深入解析了Matlab中的phantom函数,它是医学图像处理算法测试的核心工具。文章详细介绍了如何使用内置的Shepp-Logan及其改良版头部仿真模体,并重点讲解了通过自定义参数矩阵来构建专属模体的方法。通过从生成模体到模拟投影(正弦图)再到图像重建的完整实战流程,展示了phantom函数在CT等算法开发与验证中的关键作用。

m3n5b7v8c9x的博客 951

OC面向对象—多态

  OC面向对象—多态 一、基本概念 多态在代码中的体现,即为多种形态,必须要有继承,没有继承就没有多态。 在使用多态是,会进行动态检测,以调用真实的对象方法。 多态在代码中的体现即父类指针指向子类对象。 Animal类的声明   Animal类的实现   Dog类继承自Animal类   Dog类的实现   测试程序:     二、使用注意 代码分析: Do...

weixin_33979203的博客 404

把财务与管理会计装进一张表:读懂 S/4HANA 的 ACDOCA

别慌,这反而是设计所需。只是大量历史上为汇总、加速而建的索引与汇总表被淘汰或改造,很多被兼容视图 compatibility views 替代,通过视图去 ACDOCA 或 ACDOCT 取数,从而保证老代码还能 SELECT 到数据,但失去写权限。它把原来分散在多张表里的信息整合到一起,例如总账、固定资产、物料账、盈利能力分析 CO-PA、成本控制等维度,发布过的资料多次强调这一点。其二,查询必须带上高选择性的条件,尤其是 RLDNR、RBUKRS、GJAHR 这三个维度,能大幅降低列存扫描的代价。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 951

OC学习日记17 (三) get和post

get和post前言get和post是我们实现API接口功能所需要的两种方式,实际上需要哪种根据网站对此的要求,而我们获取到所要的消息前,根据进程继续执行与否,我们又分为同步和异步两种方式。因此,我们实际上一共要学习同步get、同步post、异步get、异步post四种方式。API接口例子:我们首先要为自己的软件找一个合适的API接口,这里我就以新浪接口为例子: 注册成功后,我们随便先注册一个企业

wjojo238的博客 676

基于Simulink和Control System Toolbox的线控转向(Steer-by-Wire)系统设计

通过上述步骤,我们成功设计并实现了基于 Simulink 和 Control System Toolbox 的线控转向(Steer-by-Wire)系统。该系统能够接收来自方向盘的角度指令,经过控制器处理后,驱动转向执行器(如电动机),实现对车辆前轮转向角度的精确控制。通过虚拟场景仿真、硬件在环测试和实车测试,验证了系统的响应速度、控制精度、车辆稳定性和实时性能,并通过参数优化进一步提升了系统的性能。

MHD0815的博客 551

YOLOv13手把手添加YOLOv13注意力机制:Biformer(BiLevelRoutingAttentio)YOLOv13双层路由注意力 革命性的高效注意力机制深度解析YOLOv13YOLOv1

YOLOv13 BiLevelRoutingAttention是一种革命性的高效注意力机制,YOLOv13通过双层路由策略显著降低了计算复杂度。YOLO它将注意力计算分为区域级路由和令牌级注意力两个层次,前者选择最相关的K个区域,后者仅在选定区域内执行注意力计算。这种设计借鉴了人类视觉系统的分层处理机制,在保持长距离依赖建模能力的同时,将复杂度从O(N²)降至O(NK + P⁴)。该机制还集成了可微分路由、自适应参数和LePE位置编码等创新技术,YOLOv13 YOLOv13 YOLOv13 YOLOv13

FJN110的博客 660

黑马程序员学习笔记——OC之基本简介

简介: OC全称为Objective-C,是面向对象C的意思。是在C语言的基础上增加了一层面向对象的语法,而C语言是面向过程的。 其特点为: 1、 C语言的基础上增加了一层最小的面向对象的语法。C++的面向对象语法比JAVA多,JAVA的面向对象语法比OC多,OC只保留了面向对象语法的精华。 2、 完全兼容C语言。C、OC能混用。.c能编写C代码,.m能编写C、OC代码,.m能同时编写这三

yangying514的专栏 1206

【定位教程2----旋转中心标定之方法一】

【定位教程2----旋转中心标定之方法一】

Quintin 3万+

黑马程序员——iOS核心基础(17-18天)-黑马程序员-专题视频课程

C语言基础17-18天。其中包括OC类和对象创建、类方法和Xcode

heima_cxy的博客 292

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

黑马程序员-OC语言核心语法(1)

1. 点语法:对象调用方法       上述完整方法为- (void)setAge:(int)age;   1> 如何判断set和get方法:         如果赋值,则是set方法。                  eg:stu.age = 10;         否则是get方法。                   eg :  int age =

wlwl363的专栏 430

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

黑马程序员————OC基础学习重要小知识点总结

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 1、首先,什么是Objective-C?     Objective-C是一门基于C语言的面向对象语言,C语言的基础上,增加了一层最小的面向对象语法,完全兼容c语言,它在现代计算机的主要作用于Mac OS X作为桌面语言以及作用于iPhone OS(亦称:iOS)。它原是Ne

whymerain的专栏 873

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

黑马程序员-IOS-OC基础-OC简介及基本语法

-------------------------------------- android培训、java培训、ios培训期待与您交流! ---------------------------------  OC简介:OC是Objective-C的简称,OC是在C语言的基础上,增加了一层最小的面向对象语法;完全兼容C语言;可以在OC代码中混入C语言代码,甚至C++代码;可以使用OC开

qq_25027273的专栏 467

黑马程序员——iOS核心基础(15-16天)-黑马程序员-专题视频课程

C语言基础15-16天。其中包括通讯录项目实战。

heima_cxy的博客 317

黑马程序员——OC的初步认识,类和对象

—-Java培训、Android培训、iOS培训、.Net培训期待与您交流—- 一、oc简介 oc是在c语言的基础上,增加了面向对象的语法,开发的一种语法。 oc可以完全兼容c语言,可以在oc中混入c语言代码和一部分的c++代码 oc用途:用于Mac os x平台和ios平台的应用程序开发 文件后缀名c->.c oc->.m c++->.m 二、语法 1.关键字都是以

pangetzp_41904129的专栏 693

黑马程序员---OC基础---OC与C的差异

------- android培训、java培训、IOS培训期待与您交流! ---------- 1、源文件的对比 C语言中:我们能够遇到的文件后缀有: .c:C语言的源文件。 .o:C语言编译后的目标文件。 .out:可执行文件。 .h:头文件。 OC语言中:我们能遇到的文件后缀有:(常见的是.m和.h) .h:头文件。 .c:C语言的源文件。 .cpp/.cc:C++语

shmily3945的博客 986

黑马程序员——6、OC语言(基本语法)

yi

tan_qi的专栏 718

黑马程序员——02-OC初体验

一、OC简介 OC是Objective-C的简称,是根据C语言所衍生出来的语言,在C语言的基础上,增加了一层最小的面向对象语法,而且完全兼容C语言,可以在OC代码中混入C语言代码,甚至是C++代码。可以使用OC开发Mac OS X平台和iOS平台的应用程序。   二、OC语法 1、关键字 OC中基本上所有关键字都是以@开头,在此列举一些常用的关键字 示例: @interface、@i

yqlqt的专栏 462

黑马程序员__oc基础知识总结

------- IOS培训、android培训、期待与您交流! ----------

wuyun768的专栏 540

黑马基础视频学习笔记_OC之id

黑马基础视频学习笔记_OC之id

yangying514的专栏 417

黑马程序员-IOS学习笔记-OC基础OC简介及基本语法

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- OC简介:OC是Objective-C的简称,OC是在C语言的基础上,增加了一层最小的面向对象语法;完全兼容C语言;可以在OC代码中混入C语言代码,甚至C++代码;可以使用OC开发Mac OS X平台和ios平台的应用程序。 OC语法预览 1.     关键字

lengnuanzizhi365的专栏 643
上一篇: 黑马程序员---学习笔记16:OC基础(3)
下一篇: 黑马程序员---学习笔记18:OC基础(5)
七分热度_HD
博客等级 码龄14年 12粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值