ObjectiveC面向对象编程:类的深入解析

Objective-C是苹果公司广泛用于iOS和macOS应用开发的一种编程语言,它基于C语言并加入了面向对象的特性。本文将深入探讨Objective-C中的面向对象编程,特别是类的定义、方法的实现、对象的创建与销毁等方面的内容。

Objective-C可以用于开发苹果家族系列产品的软件,本文记录了一些关键知识点,便于日后复习和参考:

面向对象程序设计(Object-OrientedProgramming,OOP)是一种程序设计范式,它将程序中的数据和操作数据的方法封装在一起,形成一个独立的实体——对象。这种设计方法有助于提高软件的复用性、灵活性和可维护性。

面向过程的编程方式侧重于解决问题的步骤,通过函数实现这些步骤,使用时按顺序调用;而面向对象则将问题分解为多个对象,每个对象负责描述事物在解决问题过程中的行为。

在面向对象编程中,对象是类的实例,类是对象的模板,方法则是类中定义的功能。类中可以包含属性和方法,分别用于存储数据和实现功能。

1.OC类的结构

@interfaceMyClass:NSObject-(void)setName:(NSString*)nameage:(int)age;@end2.实现类

类的实现以@implementation开始,以@end结束,中间包含方法的具体实现。例如:

#import"MyClass.h"@implementationMyClass-(void)setName:(NSString*)nameage:(int)age{//方法实现}@end六、实例化对象在Objective-C中,可以通过alloc和init方法创建对象。例如:

#import#import"MyClass.h"intmain(intargc,constchar*argv[]){@autoreleasepool{MyClass*obj=[[MyClassalloc]init];}return0;}此外,还可以使用new方法简化对象的创建过程:

MyClass*obj=[MyClassnew];七、释放对象(销毁对象)在Xcode4.2之前,需要手动释放对象,使用[objrelease]。但在Xcode4.2之后,默认启用了ARC(AutomaticReferenceCounting),系统会自动管理对象的生命周期。

Objective-C中的构造方法通常以init开头,例如:

-(id)initWithName:(NSString*)nameage:(int)age{self=[superinit];if(self){_name=name;_age=age;}returnself;}九、便利构造器便利构造器通常用于简化对象的创建过程,并自动管理内存。例如:

+(instancetype)myClassWithName:(NSString*)nameage:(int)age{return[[selfalloc]initWithName:nameage:age];}十、单例模式单例模式确保一个类只有一个实例,并提供一个全局访问点。例如:

+(instancetype)sharedInstance{staticMyClass*instance=nil;staticdispatch_once_tonceToken;dispatch_once(&onceToken,^{instance=[[selfalloc]init];});returninstance;}十一、Self关键字Self关键字在Objective-C中代表当前方法的调用者。在实例方法中,self代表当前对象;在类方法中,self代表当前类。

1.空指针:值为NULL或nil的指针。

2.野指针:指向无效内存地址的指针。

@interfaceMyClass:NSObject@property(nonatomic,strong)NSString*name;@end@implementationMyClass@synthesizename=_name;@end通过@property和@synthesize,可以方便地管理对象的属性,同时提供了多种选项来控制属性的行为,如atomic、nonatomic、strong、weak等。

THE END
1.传奇私服架设教程.docxCompany Document number:WTUT-WT88Y-W8BBGB-BWYTT-19998 Company Document number:WTUT-WT88Y-W8BBGB-BWYTT-19998 传奇私服架设教程 传奇私服架设教程.txt我的人生有A 面也有B面,你的人生有S面也有B面。 失败不可怕,关键看是不是成功他妈。现在的大学生太没素质了!过来拷毛片,居然用剪切!有空学风水去,死...https://max.book118.com/html/2021/0413/8054035056003074.shtm
2.传奇单机版架设终极教程.doc(召唤的神兽-小)神兽Dogz(Shinsu)114(召唤的神兽-大)神兽1Dogz1115(自身不移动,通过地刺来攻击对象)赤月恶魔RedMoonEvil116(自身不移动,通过释放Mir200\!setup.txt文件里的SPIDER特定的怪来攻击对象)幻影蜘蛛RootSpider117(自身没有攻击力,通过自暴来攻击对象)小蜘蛛(炸弹蜘蛛)Larva(Bombspider)118天狼蜘蛛Venom...https://www.renrendoc.com/paper/236065720.html
3.红队执行Mimikatz的64种方式mimidogz 1 .\Invoke-Mimidogz.ps1 https://github.com/fir3d0g/mimidogz CoreClass 1 2 'Add' > 'Existing Item'. Navigate to the `CoreClass` directory and select all the `.cs` files. Add a reference to `System.Management.Automation.dll` in your project. To do this, right-click on yo...http://www.360doc.com/content/23/0625/08/77981587_1086140667.shtml
1.类和对象(上)类和对象(上) 1. 类的定义 1.1 类定义格式 class为定义类的关键字,Stack为类的名字,{}中为类的主体,注意类定义结束时后面分号不能省略。类体中内容称为类的成员:类中的变量称为类的属性或成员变量;类中的函数称为类的方法或者成员函数。 为了区分成员变量,一般习惯上成员变量会加一个特殊标识,如成员变量...https://blog.csdn.net/weixin_47271425/article/details/143924480
2.MoreeffectiveC++:杂项51CTO博客(2)预防性设计:在设计类和接口时,应该考虑未来可能出现的功能扩展和代码重用。例如,如果一个类有可能被继承,则应提前声明虚析构函数,即便当前没有派生类。 (3)使用语言特性强制设计约束:利用C++的语言特性来实现设计意图,比如通过将某些成员函数声明为私有来防止不希望的操作,或者使用模板和泛型编程来提高代码的灵活...https://blog.51cto.com/u_16969274/12591852
3.Linux工具新解运维工具之cat腾讯云开发者社区上一篇学习了split命令(只是在MacOS中,Linux中的实际操作虽然写了但是还未整理完成,稍后整理完成一并发出),这一篇主要学习下linux中的cat命令,至于为什么要学习这个命令,主要是我这里有这个用途,学习split是为了分割文件,那么其实下一个操作也就是需要合并文文件,为了给自己增加知识,多学习一些命令,久而久之便会了,这...https://cloud.tencent.com.cn/developer/article/2466160
4.IO系列学习腾讯云开发者社区注意1: 需要在D:\LOLFolder确实存在一个LOL.exe,才可以看到对应的文件长度、修改时间等信息 注意2: renameTo方法用于对物理文件名称进行修改,但是并不会修改File对象的name属性https://cloud.tencent.com/developer/article/2467338
5.类和对象1.1身边的对象:现实世界中客观存在的任何事物都可以被看做对象.对象可以是有形的,如一辆汽车,他也可以是无形的,如一项计划.因对象无处不在. 1.https://www.u72.net/daima/n1bmz.html
6.JalanJiang.github.io/atom.xmlat638bec713b1d3b896b88b90287...12dog1yoKFWu06DjPYYLqHNS121YSyKrDc3exJhE6GSymcdp++avV9GPS6MYbokKgZAj2W66vhF8ZLprvRXs0kg6ygZmCbQed4ZxOYKKkW8Q1zLzv48kqu0iZWspDGQdPnxUHT3auKcub97S3ONaK5RCeyw/vvskj78YmiiUBJEeVyTF5mDjx+34zfP5Bt0pc57Q7sHTNb33Rgose5B2iNlqJuspBy1TXRkdeasAadnUTJ37ZHsy33gODYvX6Bg90HKK64q5a1v1T...https://github.com/JalanJiang/JalanJiang.github.io/blob/638bec713b1d3b896b88b90287e70aecd686159c/atom.xml
7.DogShowResultsAustraliaCHCATCombined Northern Rivers Kennel Club CHCATYoung & District All Breeds Kennel Club Inc SA CHCATAdelaide Districts Working Dog Club Inc - All Breeds (AM Show) CHCATAdelaide Districts Working Dog Club Inc - All Breeds (PM Show) VIC ...https://www.dogzonline.com.au/dog-show-results/