OC学习之 类和对象


一、什么是面向对象?                                                                                        

提到面向对象,就要知道两个概念,一个是类,一个就是对象。

类:

类定义了一个事物的抽象特点,比如事物的属性和一些行为。比如“狗”这个类,就会有一些基础的属性,它毛的颜色,它的个头,它的性别等;也会有它的一些行为,比如是否可以生育,是否会咬人等等。类的作用就是为程序提供出一个模板,类里的属性称作成员行为称作方法

对象:

对象就是类的实例,通过类创建出来对象。比如“狗”这个类列举了狗的属性和行为,但是它无法实现,它没有颜色,没有身高,不能叫唤等等。而对象就是把这些属性和行为具体化,比如一条叫Tom的黄色的狗。

需要注意的是,当创建一个类的时候,系统不会给他分配存储空间,只会给对象分配,可以想象,抽象的类当然是不需要内存的,但是具体的对象则是需要的。

面向对象和面向过程的区别                                                                                    

面对过程:注重的是步骤

面对对象:注重的是对象

先设计好类,利用类来设计多个对象,类就相当于图纸

类名/属性/行为


二、OC中的类

1、类的声明

——包括类的成员变量、方法、类方法的声明

         (1)、一般形式:

         @interface 类名 : NSObject

         //成员变量的声明

         {

                 //@public

  类型 成员变量名1;

  类型 成员变量名2;

  ……

}

//方法的声明

- (类型)方法名;

         //类方法的声明

         + (类型)方法名;

@end

(2)、说明:

1)、NSObjectOC库中基类,可以让声明的类具备创建对象的能力;

2)、成员变量必须放在{ }中,方法的声明必须放在{ }外,两者都要放在@interface@end之间;

3)、声明的成员变量默认初始化为0

4)、@public:使类创建的对象的成员变量可以被外界访问,没有则默认为protected;

2、类的实现

——包括对象方法、类方法的实现

(1)、一般形式:

@implementation  类名

- (类型)方法名

{

  ……

}

+ (类型)方法名

{

  ……

}

@end

例如:

 

三、OC对象

1、对象的创建

一般形式:

类名  *对象名 = [类名 new];

如:Person *p = [Person new];

四、对象方法和函数的区别                                                                                          

1.对象方法都是以减号开头

2.对象方法都必须声明在@interface和@end之间

   对象方法的实现必须声明在@implementation和@end之间

3.对象方法只能由对象来调用

4.对象方法归类\对象所有

函数

1.函数可以卸载文件的任意位置,函数归文件所有,比如函数写在@implementation和@end之间,然后也可以在main函数里调用

2.但是函数不能声明在@interface和@end之间

3.函数调用不以来于对象

4.函数内部不能直接通过成员变量名访问某个成员变量

五、类方法                                                                                                                 

类方法和对象方法差不多,都需要在@interface里声明,在@implementation里定义

类方法的都是以”+”开头的,而且不用创建对象,直接用类调用

对象方法只能用对象来调用 


类方法和对象方法的对比


注意:对象方法中可以调用类方法

在类方法中调用自己,可以引发死循环



转载于:https://www.cnblogs.com/ZhenShi/p/5027227.html

内容概要:本文系统介绍了算术优化算法(AOA)的基本原理、核心思想及Python实现方法,并通过图像分割的实际案例展示了其应用价值。AOA是一种基于种群的元启发式算法,其核心思想来源于四则运算,利用乘除运算进行全局勘探,加减运算进行局部开发,通过数学优化器加速函数(MOA)数学优化概率(MOP)动态控制搜索过程,在全局探索局部开发之间实现平衡。文章详细解析了算法的初始化、勘探开发阶段的更新策略,并提供了完整的Python代码实现,结合Rastrigin函数进行测试验证。进一步地,以Flask框架搭建前后端分离系统,将AOA应用于图像分割任务,展示了其在实际工程中的可行性高效性。最后,通过收敛速度、寻优精度等指标评估算法性能,并提出自适应参数调整、模型优化并行计算等改进策略。; 适合人群:具备一定Python编程基础优化算法基础知识的高校学生、科研人员及工程技术人员,尤其适合从事人工智能、图像处理、智能优化等领域的从业者;; 使用场景及目标:①理解元启发式算法的设计思想实现机制;②掌握AOA在函数优化、图像分割等实际问题中的建模求解方法;③学习如何将优化算法集成到Web系统中实现工程化应用;④为算法性能评估改进提供实践参考; 阅读建议:建议读者结合代码逐行调试,深入理解算法流程中MOAMOP的作用机制,尝试在不同测试函数上运行算法以观察性能差异,并可进一步扩展图像分割模块,引入更复杂的预处理或后处理技术以提升分割效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值